【POJ】【2348】Euclid‘s Game

博弈论

  题解:http://blog.sina.com.cn/s/blog_7cb4384d0100qs7f.html

  感觉本题关键是要想到【当a-b>b时先手必胜】,后面的就只跟奇偶性有关了

 1 //POJ 2348
 2 #include<cstdio>
 3 #include<algorithm>
 4 bool game(int a,int b){
 5     if (a%b==0) return 1;
 6     else if (a-b<b) return !game(b,a-b);
 7     return 1;//若a-b>b 则先手必胜
 8 }
 9 int main(){
10     int a,b;
11     while(scanf("%d%d",&a,&b)!=EOF){
12         if (!a && !b) break;
13         if (a<b) std::swap(a,b);
14         printf(game(a,b) ? "Stan wins\n" : "Ollie wins\n");
15     }
16     return 0;
17 }
View Code

 

posted @ 2015-02-23 12:11  Tunix  阅读(182)  评论(0编辑  收藏  举报