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;
}

posted on 2011-03-19 09:35  宇宙吾心  阅读(459)  评论(0)    收藏  举报

导航