lightoj 1296 - Again Stone Game 博弈論

思路:因爲數據很大,先經過打表找規律能夠知道,ide

當n爲偶數的時候其SG值爲n/2;spa

當n爲奇數的時候一直除2,直到爲偶數m,則SG值爲m/2;code

代碼以下:blog

 

 1 #include<stdio.h>
 2 int cal(int m)
 3 {
 4     while(m&1) m>>=1;
 5     return m>>1;
 6 }
 7 int main()
 8 {
 9     int t,n,ca=0,a;
10     scanf("%d",&t);
11     while(t--){
12         scanf("%d",&n);
13         int ans=0;
14         for(int i=0;i<n;i++){
15             scanf("%d",&a);
16             ans^=cal(a);
17         }
18         printf("Case %d: %s\n",++ca,ans?"Alice":"Bob");
19     }
20     return 0;
21 }
View Code
相關文章
相關標籤/搜索