A5676 | 「THUPC 2023」巧克力
时间限制2s
内存限制512MB
通过 / 提交0/0
题目描述
上回你帮小 I 在开火车上薄纱小 J 后,小 J 十分不服气,决定拉上小 I 再玩玩别的游戏。这次小 J 找到了他家珍藏的巧克力。
小 J 准备了 $(N + 1)$ 条巧克力,其中除了第 $(N + 1)$ 条巧克力有 $M$ 块外,其他第 $i$ 条巧克力恰好有 $i$ 块。
游戏由小 I 先手,双方轮流操作,每次操作方可以进行如下操作:
- 选择一条巧克力,将其分成左中右有序的三段,其中**每段必须有整数块,中间一段不能为空,左右两段可以为空**;
- 将中间一段吃掉,左右两段放回游戏。
当某个人操作时没有巧克力了,那个人就输了。
游戏开始,小 I 还没来得及算好最优策略小 J 就连忙催促,于是小 I 只好**在所有的合法操作中等概率随机选择一个进行操作**。小 J 自然是有备而来,每次操作都是最优的;而在这次随机操作之后,小 I 也终于是算清楚了游戏策略,之后的每次操作都是最优的。
小 I 想知道,第一次的随机操作中,有多少种操作能够让他取得游戏胜利。答案可能很大,你只需要输出其对 $(10^9+7)$ 取模的结果。
认为两个操作不同当且仅当选择的巧克力不同或巧克力分成的有序的三段的块数有一段不同。
小 J 准备了 $(N + 1)$ 条巧克力,其中除了第 $(N + 1)$ 条巧克力有 $M$ 块外,其他第 $i$ 条巧克力恰好有 $i$ 块。
游戏由小 I 先手,双方轮流操作,每次操作方可以进行如下操作:
- 选择一条巧克力,将其分成左中右有序的三段,其中**每段必须有整数块,中间一段不能为空,左右两段可以为空**;
- 将中间一段吃掉,左右两段放回游戏。
当某个人操作时没有巧克力了,那个人就输了。
游戏开始,小 I 还没来得及算好最优策略小 J 就连忙催促,于是小 I 只好**在所有的合法操作中等概率随机选择一个进行操作**。小 J 自然是有备而来,每次操作都是最优的;而在这次随机操作之后,小 I 也终于是算清楚了游戏策略,之后的每次操作都是最优的。
小 I 想知道,第一次的随机操作中,有多少种操作能够让他取得游戏胜利。答案可能很大,你只需要输出其对 $(10^9+7)$ 取模的结果。
认为两个操作不同当且仅当选择的巧克力不同或巧克力分成的有序的三段的块数有一段不同。
输入格式
**本题有多组测试数据。** 第一行一个整数 $T$ 表示测试数据组数。接下来依次输入每组测试数据。
每组测试数据一行两个整数 $N,M$,意义如题目描述所述。
每组测试数据一行两个整数 $N,M$,意义如题目描述所述。
输出格式
对于每组测试数据输出一行一个整数,表示能使小 I 胜利的第一次操作数对 $(10^9+7)$ 取模。
输入输出样例
输入 #1
4 3 0 3 1 3 12345678987654321 0 0
输出 #1
0 4 450617288 0
本题仅有一个 $T = 5 \times 10^4$ 的测试点,对于每组测试数据 $0 \le N,M \le 10^{18}$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?