1 条题解
-
0
分数游戏(困难版)题解
思路
令 表示 时的最优最终分数。Alice 在一回合中平衡 Bob 选择加法和减法后的两个结果,可得到相邻状态取平均值的递推。困难版不能存下完整的二维状态表,需要把递推化为组合数公式。
做法
子任务 1
当 时,不记忆化地展开 Bob 每回合的两种选择。边界为 和 ,内部状态递归计算两个后继的平均值,复杂度为 。
子任务 2
按回合数从小到大计算
使用滚动数组后,每组复杂度为 ,在 时可以通过。
满分算法
记相邻差分 。由递推可证明
再次对 求前缀和,得到
预处理阶乘、逆阶乘和二的逆幂,即可在 时间回答一组询问。因为 且所有测试组的 ,总循环次数也是 。最终答案乘以 。
正确性证明
在内部状态 ,设 Alice 当前选择 。Bob 选择加法后的值为
选择减法后的值为
Alice 的最优选择令两式相等,因此状态值恰为两个后继状态的平均值。边界 时 Alice 只能保证零;边界 时 Bob 每回合都必须加,Alice 每回合选择一,故值为 。于是上述递推正确。
由递推对相邻 作差,并结合帕斯卡恒等式,可归纳得到 的二项式前缀和表达式。再把 相加,每个 恰出现 次,便得到满分公式。因此算法输出 ,正是原游戏的最优最终分数。
复杂度
预处理时间和空间均为 ,其中 。所有询问的总时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1311
- 时间
- 3000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者