NJUST 誰才是最強戰艦!(博弈論-Nim遊戲)
阿新 • • 發佈:2019-01-30
題目連結:
思路:
就是Nim遊戲裡面的一種情況,最後取的那個人輸。這種情況下是需要考慮孤立堆的情況,就是全部都是1的時候。其他情況就是按照異或值是否為0判斷。
另一種情況是最後取的那個人贏,直接判斷異或值即可。
程式碼:
#include<stdio.h> #include<string.h> int main() { int T,i,j,k,n,a[1005],f; scanf("%d",&T); while(T--) { f=0; scanf("%d",&n); int sum=0; for(i=1;i<=n;i++) { scanf("%d",&a[i]); if(a[i]==1)f++; sum=sum^a[i]; } if(f<n) { if(sum>0)printf("Yamato_Saikou!\n"); else printf("Meidikeji_Shijiediyi!\n"); } else { if(n%2)printf("Meidikeji_Shijiediyi!\n"); else printf("Yamato_Saikou!\n"); } } }