标签:des style blog color io os 使用 ar 数据
HDU 1846 Brave Game (巴什博弈)
Description
Input
Output
Sample Input
Sample Output
second
(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。 这个游戏还可以有一种变相的玩法:两个人轮流报数,每次至少报一个,最多报十个,谁能报到100者胜。
其PN图也很好画,我理解N为后者必胜,P为后者必败。
1 #include <iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 int i,n,m; 8 cin>>i; 9 while(i--) 10 { 11 cin>>n>>m; 12 if(n%(m+1)!=0) 13 { 14 cout<<"first will win!"<<endl; 15 } 16 else 17 { 18 cout<<"second will win!"<<endl; 19 } 20 } 21 return 0; 22 }
标签:des style blog color io os 使用 ar 数据
原文地址:http://www.cnblogs.com/xiaojingang/p/3973868.html