A Chess Game
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 1100 Accepted Submission(s): 504
用SG函数做的:
1 #include <iostream> 2 #include <stdio.h> 3 #include <algorithm> 4 #include <string.h> 5 #include <math.h> 6 #include <vector> 7 #include <stack> 8 #include <queue> 9 using namespace std; 10 #define ll long long int 11 vector<int> a[1100]; 12 int z[1100]; 13 int n; 14 int dfs(int x) 15 { 16 if(z[x]!=-1)return z[x]; 17 int size=a[x].size(); 18 int i; 19 int c[n]; 20 memset(c,0,sizeof(c)); 21 for(i=0;i<size;i++) 22 { 23 c[dfs(a[x][i])]=1; 24 } 25 for(i=0;i<n;i++) 26 if(!c[i]) 27 { 28 z[x]=i; 29 break; 30 } 31 return z[x]; 32 } 33 int main() 34 { 35 while(cin>>n) 36 { 37 bool b[n]; 38 memset(z,-1,sizeof(z)); 39 memset(b,0,sizeof(b)); 40 int i,j,m,x; 41 for(i=0;i<n;i++) 42 { 43 a[i].clear(); 44 cin>>m; 45 for(j=0;j<m;j++) 46 { 47 cin>>x; 48 a[i].push_back(x); 49 b[x]=1; 50 } 51 } 52 for(i=0;i<n;i++) 53 { 54 if(!b[i]) 55 dfs(i); 56 } 57 while(cin>>m&&m) 58 { 59 int sum=0; 60 for(i=0;i<m;i++) 61 { 62 cin>>x; 63 sum^=z[x]; 64 } 65 if(sum) 66 cout<<"WIN"<<endl; 67 else cout<<"LOSE"<<endl; 68 } 69 } 70 }
View Code
转载于:https://www.cnblogs.com/ERKE/p/3263476.html
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110045.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...