poj 2311
注意如何转化为nim。
代码:
#include<iostream> #include<fstream> using namespace std; int g[201][201]; int v[201][201]; int n,m; int solve(int s,int t){ int i,j,k; if(v[s][t]) return g[s][t]; bool v2[400]={0}; v[s][t]=1; for(i=2;i<=s/2;i++) { j=solve(i,t); k=solve(s-i,t); v2[j^k]=1; } for(i=2;i<=t/2;i++) { j=solve(s,i); k=solve(s,t-i); v2[j^k]=1; } for(i=0;;i++) if(v2[i]==0) { g[s][t]=i; break; } return g[s][t]; } void read(){ // ifstream cin("in.txt"); int i,j,k; while(cin>>n>>m) { solve(n,m); if(g[n][m]>0) cout<<"WIN"<<endl; else cout<<"LOSE"<<endl; } } int main(){ read(); return 0; }