标签:amp href sam 目的 今天 isp using acm chmod
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10947 Accepted Submission(s): 7362
ACM Short Term Exam_2007/12/13
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8892 Accepted Submission(s): 5638
2008-06-18《 ACM程序设计》期末考试——四川加油!中国加油!
巴什博弈(定理献上):
只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜.
n = (m+1)r+s , (r为任意自然数,s≤m), 即n%(m+1) != 0, 则先取者肯定获胜。
巴什博弈还是很好理解滴,以你是先手的角度考虑。你想把对手给弄垮,那么每一局,你都必须构建一个局势,这个局势就是每次都留给对手m+1的倍数个物品(为什么留给m+1倍就一定能赢,你稍微动动脑子就出来了)。所以不只是取物品中的博弈可以用到巴什定理,还可以是报数之类的,看谁先报到100.并且每次报的数必须是1~10(包括1跟10),那么你每次都应该留给对手剩下的报数个数为11的倍数。
--------------------------------------------------------------
A.巴什博弈,一个人拿1~m个,那谁面对m+1的局势的的时候则必败,很明显,先拿的就是要造这个局势,如果n是(m+1)*r+s(k为任意,s<m+1),那么很明显先拿的拿掉s后,然后无论下一个拿多少你都可以保证你拿完后都是拿了m+1个,这样后拿的必定面对必败局势,比如23
2,23=(3×7)+2;那我第一次拿掉2,然后无论每次第二个拿几我都可以使得这轮总共拿3,然后他必定会面对3这个局势,然后我就必胜,那什么时候必败呢,很明显如果我面对的是(m+1)的倍数的局势就必败。
代码:
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int n,m,t; 6 cin>>t; 7 while(t--) 8 { 9 cin>>n>>m; 10 if(n%(m+1)==0) cout<<"Rabbit"<<endl; 11 else cout<<"Grass"<<endl; 12 } 13 return 0; 14 }
标签:amp href sam 目的 今天 isp using acm chmod
原文地址:http://www.cnblogs.com/--ZHIYUAN/p/6160309.html