B Cannon 题意:有一个两行、无限长的棋盘,第一行有 个炮,第二行有 个炮,求依次发生 次吃炮事件的方案总数。 Subtask 1:无限制。 Subtask 2:考虑两行的执行顺序。 解法:考虑有 个炮的情况。那么发生一次吃炮事件的方案数为 ,由此可以推出发生 次吃炮事件的方案数为 ,记位 。 显然,均大于 ,因而令 ,。 因而我们可以发现,对于 Subtask 1,答案为 。化简,可以得到原式等于 考虑 ,其意义为在 和 件物品***选取 件的方案总数,因而等于 。因而 Subtask 1 的答案为。 Subtask 2 就麻烦一些:。 考虑 。此处需要用到步移算法,...