返回信息流以下是题目 附上我的代码
你终于听懂魔王在说什么了!!!
魔王大意是:他面前有一堆n个物品,你和魔王轮流从这堆物品中取物品,规定每次至少取一个,最多取m个,最后取光者得胜。魔王先手,每个人都采用最优策略。胜利当然是通过考验啦!!魔王说这是成为大魔王的必经之路。你内心很想知道你能否通过魔王的考验。
输入有多组输入
每组输入 n, m (1 <= m <= n <= 50)
输出
若能通过考验输出 YES, 否则输出 NO
样例输入1
10 5
11 10
样例输出1
NO
YES
附件(331B)
我的代码如下:
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n,m;int k;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(m==n)
cout<<"NO";
else
{
k=n%(m+2);
if(k<=(m-1))
cout<<"NO";
else
cout<<"YES";
}
cout<<endl;
}
return 0;
}
求大神帮忙看下啊啊啊,老是Wrong Answer
感激不尽呢(+﹏+)
再因为这道题ac率跌了30%,要哭了ヽ(ˋДˊ)ノ
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #94062同步于 2017/9/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
【问题】求助C++博弈问题,总是Wrong Answer,求帮助⊙﹏⊙。
TTTAO1015
2017/9/24镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
从最小的开始逆推,当物品还剩1~m个时,先手胜;
那么剩m+1时,后手胜,因为先手的人总会让后手的人落入1~m的区间
所以m+2~2m+1是先手胜,无论剩多少,都有办法让后手的人面临m+1个剩余物品;
所以2m+2是后手胜,无论先手怎么取都会使后手的人落在上面先手胜的区间;
所以2m+3到3m+2是先手胜;
所以k(m+1)后手胜利,其余先手胜利。
赞!谢谢啦、真的是我设计错了
【 在 rancho 的大作中提到: 】
: 从最小的开始逆推,当物品还剩1~m个时,先手胜;
:
: 那么剩m+1时,后手胜,因为先手的人总会让后手的人落入1~m的区间
嗯嗯,我搞错了,你说的对^_^麻烦了
【 在 hxidkd 的大作中提到: 】
: 只有n%(m+1) == 0才是必败态,输出Yes吧
: --
:
看完了题目
想到了跟你一样的解法
连看都不看
你是对的
哈哈哈哈哈哈
【 在 rancho 的大作中提到: 】
: 从最小的开始逆推,当物品还剩1~m个时,先手胜;
: 那么剩m+1时,后手胜,因为先手的人总会让后手的人落入1~m的区间
: 所以m+2~2m+1是先手胜,无论剩多少,都有办法让后手的人面临m+1个剩余物品;
: ...................