标签:变形 BMI miss iostream 最小 memory otto 博弈 cin
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 5668 Accepted Submission(s): 2653
2.p=1,q=2时易得
1 2 3 4 5 6 ……
P N NP N N
3.p = 2,q=4时
1 2 3 4 5 6 7
p p n n n n p
仔细分析一下就能很快找出其实就是最大间距和最小间距的问题,因为每次至少取p个,最多取q个,所以现在状态向前找间距不超过最大间距之内只要有P状态那么此状态就是N状态,反之现在状态向前最大间距之内只要全是N状态那么此状态就是P状态。这样就容易得出结论,对于给定的p和q,PN图以(p+q)为周期循环,所以只要对(p+q)取一下模,然后模值在1到p内则为必败状态,模值在p+1到p + q为必胜状态,当模值为0时认为模值为p+q。
#include <iostream>
#include <algorithm>
using namespace std ;
int main(){
int n , p , q;
while(cin >> n >> p >> q){
int mod = n % (p + q) ;
if(mod == 0) {
mod = p + q ; // 两者先后取的数量刚好可以构成循环,即先取的胜利
}
if(mod <= p){
cout<<"LOST"<<endl ;
}else{
cout<<"WIN"<<endl ;
}
}
}
标签:变形 BMI miss iostream 最小 memory otto 博弈 cin
原文地址:https://www.cnblogs.com/yi-ye-zhi-qiu/p/9086142.html