Description
有1~n个数字,两个人轮流选择一个数字,并把它和它的约数擦去。擦去最后一个数的人赢,问谁会获胜。
题解:
类似于chomp博弈的巧克力游戏(把约数1当作右上角那块格子)。每个数的约数都有1,先手可以取走1把必败态扔给对方。
所以除了n==0的情况,总有先手必胜。


1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int n; 7 while(scanf("%d",&n)!=EOF) 8 { 9 if(n!=0) 10 cout<<"win"<<endl; 11 else 12 cout<<"fail"<<endl; 13 } 14 return 0; 15 }
本文探讨了一个有趣的博弈论游戏,涉及到数字选择和擦除策略。两人轮流从1到n中选择一个数字并擦除其及其约数,直至无法选择。文章通过将此游戏比作chomp博弈的巧克力游戏,解析了必胜策略,揭示了先手在绝大多数情况下拥有优势。
&spm=1001.2101.3001.5002&articleId=101542148&d=1&t=3&u=2b5378baf5324adbb4196827f6925ded)
801

被折叠的 条评论
为什么被折叠?



