专栏文章

题解:CF2070E Game with Binary String

CF2070E题解参与者 2已保存评论 1

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
1 条
当前快照
1 份
快照标识符
@mipmpvij
此快照首次捕获于
2025/12/03 14:31
3 个月前
此快照最后确认于
2025/12/03 14:31
3 个月前
查看原文
考察一个序列先手必胜的条件。
对于后手,如果有相邻的 0,10,1 是一定要操作它们的,因为这样能减少 00 的数量。
注意到序列是环形,那么存在相邻的 0,10,1 等价于序列不全相同。显然序列全相同时胜负能定。所以后手只能操作 0,10,1 而不是 1,11,1
令序列中 0,10,1 的个数分别为 c0,c1c_0,c_1。注意到一轮操作后 00 会少三个,11 会少一个,也就是最多能操作 min(c0/3,c1)\min(c_0/3,c_1) 轮。于是考虑 c0,c1c_0,c_1 的关系对先手是否必胜的影响。
  • c03c12c_0 - 3c_1 \ge 2:操作完 c1c_1 轮后全是 00,先手胜。
  • c03c1=1c_0-3c_1=1:操作完 c1c_1 轮后只剩一个 00,后手胜。
  • c03c1=0c_0-3c_1=0:操作完 c1c_1 轮后全删完了,后手胜。
  • c03c1=1c_0-3c_1=-1:操作完 c11c_1-1 轮后,还剩两个 00 和一个 11,先手胜。
  • c03c1=2c_0 - 3c_1=-2:操作完 c11c_1-1 轮后,还剩一个 00 和一个 11,后手胜。
  • c03c13c_0-3c_1\le -3:操作完 c0/3\lfloor c_0/3 \rfloor 轮后全是 00,先手胜。
也就是说先手胜等价于 c03c12c_0 - 3c_1 \ge 2c03c1=1c_0-3c_1=-1
那很好了,我们视作 00 的权值为 1111 的权值为 3-3,然后做这个权值的前缀和,那么 [l,r][l, r] 合法等价于 srsl12s_r-s_{l-1} \ge 2srsl1=1s_r-s_{l-1} = -1。随便搞一下就好了。

评论

1 条评论,欢迎与作者交流。

正在加载评论...