码迷,mamicode.com
首页 > 其他好文 > 详细

HDU1846 巴什博奕

时间:2014-12-08 21:02:26      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   sp   on   div   log   bs   

巴什博弈:

一个人拿1~m个,那谁面对m+1的局势的的时候则必败。假设n=k*(m+1)+s,(k为任意,s<m+1),那我(先手)先把那个s个拿掉,然后让另一个人拿,从现在开始,只要我每次拿的个数与前面一个人拿的个数和等于m+1,这样后拿的必定面对必败局势,即到最后另一个人拿完后肯定是剩t(t<m)个给我,那就是我赢。
比如23 2,23=(3×7)+2;那我第一次拿掉2,然后无论每次另外一个人拿多少我都可以使得这轮总共拿3,然后他必定会面对3这个局势,然后我就必胜,那什么时候必败呢,很明显如果我面对的是(m+1)的倍数的局势就必败。即我们只需要判断n%(m+1)是否等于0即可知道谁胜谁负。
 
 1 #include<cstdio>
 2 int main()
 3 {
 4     int t, n, m;
 5     scanf("%d", &t);
 6     while (t--){
 7         scanf("%d%d", &n, &m);
 8         if (n <= m)
 9             printf("first\n");
10         else if (n % (m + 1) == 0)
11             printf("second\n");
12         else
13             printf("first\n");
14     }
15     return 0;
16 }

 

HDU1846 巴什博奕

标签:style   blog   io   color   sp   on   div   log   bs   

原文地址:http://www.cnblogs.com/-Unc/p/4151844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!