DiviDuelo

这里不符合“不能行动的玩家判负”,所以就不要往SG函数想了

我们先模拟样例,会发现1是一个特别的数字,如果first player拿到了1那么肯定就输了

于是不难得出结论,如果n是一个完全平方数,那么first player就G了

那么考虑不是完全平方数,显然这里考虑gcd不是1非常困难,于是考虑second player怎么样才能赢

由于gcd要为1,不难想到互质,于是对n进行分解质因数,然后就有了PDF的做法

update 2024.8.4

重新做一遍,做出来了,但是花的时间也挺久的

看到gcd,除了想到去考虑gcd的具体值(此时不一定为质数),还可以去考虑将gcd分解质因数,于是可以考虑最后的gcd可以分解质因数

所以我们将N分解质因数,然后把所有约数按照质数的个数以及幂写在纸上,不难发现上面的分类讨论(因为first player不可能同时选两个不同的质因数pαqβ

提醒一点,下面做法是错的:考虑gcd最终的质因子是什么,于是除了这个质因子如果有其他的质因子first player就会输,因为会被强制选不含这个质因子的约数。错误的原因就在于这是博弈论,双方可以根据当前的局势灵活调整,不会死盯着一个目标前进

posted @   最爱丁珰  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示