题目:hdu2149
题意:普通巴什博弈。问第一个人要保证自己能赢第一次应该拿多少个,必败则输出none.
解答:如果n%(m+1)=0的话必败,如果n >= m,就输出m到n就行。如果不必败。那么第一次那的数目应该等于n%(m+1).为了让对手处于必败态。
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int m,n;
while(~scanf("%d%d",&m,&n))
{
if(m <= n)
{
printf("%d",m);
for(int i = m+1;i <= n;i++)
printf(" %d",i);
printf("\n");
}
else
{
if(m % (n+1) == 0)
printf("none\n");
else
{
m %= (n+1);
printf("%d\n",m);
}
}
}
return 0;
}