金华3.19

金华3.19

博弈论

ICG:公平组合游戏,有先手必胜/后手必胜,其满足:

  1. 有两个玩家,游戏对两个玩家是公平的
  2. 游戏状态有限
  3. 一个玩家不能行动时游戏结束

满足这些情况时可以使用SG函数解决,一个状态的SG值等于他能到达的状态的SG的mex,多个游戏的SG值等于其异或和。当且仅当SG为0先手必败,否则先手必胜。

ZROI1743 取石子

n堆石子,每个人可以取a~b个石子,无法操作的人失败。此外,当一个人取完一堆石子时他会立即获胜。

这题有个条件:取完一堆石子时他会立即获胜,那它就不是个ICG,无法使用SG函数来做。我们考虑判掉有 (|x_i|in[a,b]) 的情况(此时先手必胜),否则把 ([a,b]) 设为不可到达的情况,因为按照最优策略来说没有人会把石子数操作到 ([a,b]),除非没有其他可以操作的堆,这时就相当于不能行动时游戏结束了。那么它就变成了一个ICG,可以打表找出SG的规律。

ZROI1745 序列

(f[x][i]):填满i个数,第一个是x,然后dp优化。

ZROI1745 树

直接边分治+莫比乌斯反演是(qnd(n)+nd(n)log n)的,出题人卡了波常数不能过,有几个小技巧:

  1. 注意到 (mu=0) 没有贡献,我们可以把因数个数优化到(2^c)(c) 是质因子个数
  2. 考虑询问的时候换一种统计答案的方式。注意到修改的边一定有边权,那么gcd一定只有(2^c)种,可以FWT。

于是最后复杂度是(n2^clog n+q(n+c2^c))

原文地址:https://www.cnblogs.com/lcyfrog/p/14564568.html