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\n"); 20 else 21 printf("WIN\n"); 22 } 23 else printf("WIN\n"); 24 } 25 return 0; 26 }