威佐夫博弈求最佳下一步。威佐夫博弈除了必败局则是必胜局,所以在必胜局的下一步一定有一个让对手达到必败局的走法,依照给定规则寻求达到必败局的走法,for循环寻找。
#include
#include
#include
bool mark[1000000];
int weiz(int n,int m)
{
int t,k;
if(n=b)
printf("%d %d\n",b,a);
else
printf("%d %d\n",a,b);
mark[a]=1;
mark[b]=1;
}
return;
}
int main()
{
int n,m,i,j;
while(~scanf("%d%d",&n,&m)&&n+m)
{
if(weiz(n,m))
printf("0\n");
else
{
memset(mark,0,sizeof(mark));
printf("1\n");
for(i=n,j=m; i>=0&&j>=0; i--,j--)
{
if(weiz(i,j))
{
output(i,j);
break;
}
}
for(i=n; i>=0; i--)
{
if(weiz(i,m))
{
output(i,m);
break;
}
}
for(j=m; j>=0; j--)
{
if(weiz(n,j))
{
output(n,j);
break;
}
}
}
}
return 0;
}