2359: 巴什博弈?
时间限制: 1 Sec 内存限制: 30 MB提交: 252 解决: 49
[ 提交][ 状态][ 讨论版]
题目描述
有n个石子,有两人轮流从中取石子,最少a个最多b个,谁没得取(即当轮到他取是已经没有石子可以取了,也就是说此时石子数量小于a)谁赢,现在,LLM先取,问你LLM能赢吗
输入
每个测试样例少于100000组测试数据
每组测试样例第一行三个整数n,a,b
1<=a<=b,n<=100000000
输出
如果LLM能赢,输出YES,否则输出NO
样例输入
1 1 12 1 2
样例输出
NOYES
哎,看完标准题解才知道,自己把获胜的区间求错了,一直wrong,无限wrong,连wrong18次把,还自以为评判机有问题,没想到今天早上看到题解,改了一下成功的区间,没想到就ac了 ,内心愤慨,久久不能平息啊!
才发现没有确定的思路千万不要打代码啊 !!
#include<stdio.h>
int main()
{
long long n,p,q;
while(scanf("%lld%lld%lld",&n,&p,&q)!=EOF)
{
long long left = n%(p+q);
if(left<2*p&&left>=p) // 再p+q这个特殊点区间中 如果最后处与p到2*p 则则必输 反之必赢
printf("NO\n");
else
printf("YES\n");
}
return 0;
}