655
技術社區[雲棲]
POJ 1704
這題好像nim博弈的變形 主要在於找到變成奇異局勢的方式,那麼可以想到最近的兩個棋子移動到相鄰 如果n為奇數那麼把0點也看作是一個棋子 如果變完後那麼後手隻需要模仿先手就可以贏了 所以之前是nim博弈
#include <iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int main() { int t,n,a[1010]; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i=0; i<n; i++) scanf("%d",&a[i]); if(n&1) a[n++]=0; sort(a,a+n); int ans=0; for(int i=n-1; i>0; i-=2) ans^=a[i]-a[i-1]-1; if(ans) puts("Georgia will win"); else puts("Bob will win"); } return 0; }
最後更新:2017-04-04 07:03:55