邂逅明下 HDU - 2897
Posted astonc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了邂逅明下 HDU - 2897相关的知识,希望对你有一定的参考价值。
Problem description:
有三个数字n,p,q,表示一堆硬币一共有n枚,从这个硬币堆里取硬币,一次最少取p枚,最多q枚,如果剩下少于p枚就要一次取完。两人轮流取,直到堆里的硬币取完,最后一次取硬币的算输。对于每一行的三个数字,给出先取的人是否有必胜策略,如果有回答WIN,否则回答LOST。
Input
不超过100000行,每行三个正整数n,p,q。Output对应每行输入,按前面介绍的游戏规则,判断先取者是否有必胜策略。输出WIN或者LOST。
Sample Input
7 2 4 6 2 4Sample Output
LOST WIN
思路:总是读题不准,原来是最后一个取的人会输,而且这个不能用动态规划做,会超时。
这个其实是巴什博奕。
#include<iostream> using namespace std; int main(){ int n,p,q; while(cin>>n>>p>>q){ int s=n%(p+q); if(s==0) cout<<"WIN"<<endl; else if(s<=p) cout<<"LOST"<<endl; else cout<<"WIN"<<endl; } }
以上是关于邂逅明下 HDU - 2897的主要内容,如果未能解决你的问题,请参考以下文章