题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2149
思路:**巴什博弈。**把N元看成n个石子。
当n%(m+1)==0时后手必胜,其他时先手必胜。
在先手能一次取完时,输出n n+1 …m。其他时,先手取完后,让n%(m+1)==0,那么取得个数就是n%(m+1)
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <map>
#include <set>
#include <vector>
#include <map>
#include <bitset>
#include <algorithm>
#include <queue>
#include <stack>
#include <cmath>
#define ll long long
using namespace std;
int main()
{
int n,m;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n%(m+1)==0)
{
printf("none\n");
continue;
}
if(n<=m)
{
for(int i=n;i<m;i++)
printf("%d ",i);
printf("%d\n",m);
}
else
printf("%d\n",n%(m+1));
}
return 0;
}