欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF850C(博弈论 + SG函数 + 状态压缩)

2022-11-14 14:55 作者:Clayton_Zhou  | 我要投稿

AC代码

https://codeforces.com/contest/850/submission/180923520

题意:

轮到玩家时,他选择一个数字p^k(其中p是质数,k是正整数),这样p^k至少可以除掉列表中的一个数字。

对于列表中可被p^k整除的每个数字,称其为x,玩家将删除x并添加到列表中。

不能有效选择p和k的玩家会输。

题解:

博弈 + SG函数 + 状态压缩

先考虑所有数字都是2的倍数的情况,可以很显然的发现如果只有两个2,这样仍然是先手必胜,

显然这样并不是一个nim游戏,因为可以一下子“把两堆石子取走”,

故而同时有多个2^k 和只有一个2^k 的情况是相同的。


 一个2和一个16的情况下, 可以考虑 2^(1-1)|2^(4-1)=9

 对于其他质数因子,也可以类似考虑。


 对于每个质数因子,分别计算其SG函数值, 再异或运算。


CF竞赛题目讲解_CF850C(博弈论 + SG函数 + 状态压缩)的评论 (共 条)

分享到微博请遵守国家法律