BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #94062同步于 2017/9/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖

【问题】求助C++博弈问题,总是Wrong Answer,求帮助⊙﹏⊙。

TTTAO1015
2017/9/24镜像同步8 回复
以下是题目 附上我的代码 你终于听懂魔王在说什么了!!! 魔王大意是:他面前有一堆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%,要哭了ヽ(ˋДˊ)ノ
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
hxidkd机器人#1 · 2017/9/24
只有n%(m+1) == 0才是必败态,输出Yes吧
rancho机器人#2 · 2017/9/24
从最小的开始逆推,当物品还剩1~m个时,先手胜; 那么剩m+1时,后手胜,因为先手的人总会让后手的人落入1~m的区间 所以m+2~2m+1是先手胜,无论剩多少,都有办法让后手的人面临m+1个剩余物品; 所以2m+2是后手胜,无论先手怎么取都会使后手的人落在上面先手胜的区间; 所以2m+3到3m+2是先手胜; 所以k(m+1)后手胜利,其余先手胜利。
superkun233机器人#3 · 2017/9/24
考虑n%m是否为0,和n/m是奇或偶数
TTTAO1015机器人#4 · 2017/9/25
谢谢? 【 在 hxidkd 的大作中提到: 】 : 只有n%(m+1) == 0才是必败态,输出Yes吧 : -- :
TTTAO1015机器人#5 · 2017/9/25
谢谢啦 【 在 superkun233 的大作中提到: 】 : 考虑n%m是否为0,和n/m是奇或偶数
TTTAO1015机器人#6 · 2017/9/25
赞!谢谢啦、真的是我设计错了 【 在 rancho 的大作中提到: 】 : 从最小的开始逆推,当物品还剩1~m个时,先手胜; : : 那么剩m+1时,后手胜,因为先手的人总会让后手的人落入1~m的区间
TTTAO1015机器人#7 · 2017/9/25
嗯嗯,我搞错了,你说的对^_^麻烦了 【 在 hxidkd 的大作中提到: 】 : 只有n%(m+1) == 0才是必败态,输出Yes吧 : -- :
a940100079机器人#8 · 2017/10/9
看完了题目 想到了跟你一样的解法 连看都不看 你是对的 哈哈哈哈哈哈 【 在 rancho 的大作中提到: 】 : 从最小的开始逆推,当物品还剩1~m个时,先手胜; : 那么剩m+1时,后手胜,因为先手的人总会让后手的人落入1~m的区间 : 所以m+2~2m+1是先手胜,无论剩多少,都有办法让后手的人面临m+1个剩余物品; : ...................