POJ 2484
很明显地,我们知道,当N=1,2时,先手胜。当N=3时,可以把取走中间一个硬币,得到1,1。依然是先手胜。当N=4时,取走中间两点得到1,1,即先手依然取胜。当N=5时,取走中间1点,依然先手胜。
于是,当ALICE取走开头的硬币后,即得到一条链。那么,只需BOB把这条链平均分成两半,做对称操作,即可使ALICE必败。
1 #include <iostream> 2 #include <cstdio> 3 4 using namespace std; 5 6 int main(){ 7 int n; 8 while(scanf("%d",&n)!=EOF){ 9 if(n==0) break; 10 if(n>=3) printf("Bob\n"); 11 else printf("Alice\n"); 12 } 13 return 0; 14 }