http://poj.org/problem?id=2484
1和2时Alice必胜,3时Bob必胜,其他情况下Bob只需要在Alice取过之后取一次将剩下的硬币链平均分为两份,然后Alice怎么取Bob对称着取就可以了。
真是巧妙。
代码
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cmath> 5 #include<iostream> 6 #include<map> 7 using namespace std; 8 int m; 9 int main(){ 10 while(~scanf("%d",&m)){ 11 if(!m)break; 12 if(m<3)printf("Alice\n"); 13 else printf("Bob\n"); 14 } 15 return 0; 16 }
时间: 2024-11-02 10:36:38