HDU 2897 邂逅明下(巴士变形)

题意:

给你n个石子,你最少取p个,最多取q个,问谁能赢

题解:

变形版的巴什博弈,当n>=q+1的时候,那么还是以q+1为一组拿走,剩下一个(n%(q+1)),这个时候如果它小于p的话都直接输了,如果大于p的话就赢了

           当n<q+1的时候和上面一样处理就可以了

代码:

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<math.h>
 6 #include<stack>
 7 #include<math.h>
 8 using namespace std;
 9 const int maxn=1000000;
10 int main()
11 {
12     int N,n,m;
13     while(~scanf("%d%d%d",&N,&n,&m))
14     {
15         int q=N%(n+m);
16         if(q)
17         {
18             if(q<=n)
19                 printf("LOST
");
20             else
21                 printf("WIN
");
22         }
23         else printf("WIN
");
24     }
25     return 0;
26 }
View Code
原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/11345020.html