标签:
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://www.cnblogs.com/yxwkf/p/5158718.html