标签:
| 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