标签:
input | output |
---|---|
8 |
1 2 |
解析:找规律。
考虑如下例子:
剩余石子的数量 first Nikifor
1 win
2 win
---- 依次选择1,2. 并且1 和 2是可以选择的。
3 lose
---- 因为你选1或2的时候,另外一个人总能一次把剩下的取完。
4, 5 win
---- 依次选择1,2,能够获胜。
6 lose
7, 8 win
.... 从上面的规律我们可以看出当 N mod 3 == 0 我们能确认first Nikifor一定能失败;否则的话,我们能选择的最小石子的数量 = N mod 3,此时first Nikifor获胜。
AC代码:
#include <bits/stdc++.h> using namespace std; int main(){ int ans = 0; char c; while(scanf("%c", &c) && c != '\n') ans += c - '0'; //求个位数字之和以判断数字是否能被3整除,数太大,直接存不下! if(ans % 3 == 0) puts("2"); else printf("%d\n%d", 1, ans % 3); return 0; }
URAL 1180. Stone Game (博弈 + 规律)
标签:
原文地址:http://blog.csdn.net/u013446688/article/details/46606653