首页 > 其他 > 详细

博弈

时间:2014-03-12 22:41:13      阅读:512      评论:0      收藏:0      [点我收藏+]

 

poj 2234

bubuko.com,布布扣
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>

 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int i,j,n,m,t;
 9     while(~scanf("%d",&n))
10     {
11         int ans=0;
12         for(int i=0;i<n;i++)
13         {
14             scanf("%d",&m);
15             ans^=m;
16         }
17         if(ans)
18             printf("Yes\n");
19         else printf("No\n");
20 
21     }
View Code

 

hdu 1847 good luck in。

bubuko.com,布布扣
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 bool vis[1002];
 6 int sg[1002];
 7 
 8 void getsg()
 9 {
10     sg[0]=0;
11     for(int i=1;i<1002;i++)
12     {
13         memset(vis,false,sizeof(vis));
14         for(int j=0;(1<<j)<=i;j++)
15         {
16             vis[sg[i-(1<<j)]]=true;
17         }
18         for(int j=0;j<1002;j++)
19             if(vis[j]==false)
20             {
21                 sg[i]=j;
22                 break;
23             }
24     }
25 
26 }
27 
28 int main()
29 {
30     int i,j,n,m,t;
31     getsg();
32     while(~scanf("%d",&n))
33     {
34 
35         if(sg[n])
36             printf("Kiki\n");
37         else printf("Cici\n");
38 
39     }
40 
41     return 0;
42 }
View Code

 

 hdu 1848

bubuko.com,布布扣
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 bool vis[1002];
 6 int sg[1002];
 7 int f[30];
 8 
 9 void getf()
10 {
11     f[1]=1;
12     f[2]=2;
13     for(int i=3;i<30;i++)
14         f[i]=f[i-1]+f[i-2];//printf("%d\n",f[i]);}
15 }
16 
17 void getsg()
18 {
19     sg[0]=0;
20     for(int i=1;i<1002;i++)
21     {
22         memset(vis,false,sizeof(vis));
23         for(int j=1;f[j]<=i;j++)
24         {
25             vis[sg[i-f[j]]]=true;
26         }
27         for(int j=0;j<1002;j++)
28             if(vis[j]==false)
29             {
30                 sg[i]=j;
31                 break;
32             }
33     }
34 
35 }
36 
37 int main()
38 {
39     int i,j,n,m,t,p;
40     getf();
41     getsg();
42     while(~scanf("%d%d%d",&n,&m,&p))
43     {
44         if(n==0&&m==0&&p==0)
45             break;
46         int ans=0;
47         ans=sg[n]^sg[m]^sg[p];
48 
49         if(ans)
50             printf("Fibo\n");
51         else printf("Nacci\n");
52 
53     }
54 
55     return 0;
56 }
View Code

博弈,布布扣,bubuko.com

博弈

原文:http://www.cnblogs.com/assult/p/3597362.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!