巴什博奕(一看就懂)

题目
有一堆n个物品,两个人轮流从这堆物品中取, 每次至少取一个,最多取m个,最后取完者得胜。

说明

不管怎么样,就是想尽办法给对手留下(m+1)的倍数个物体,你就可以赢,比如你给对手只留下2*(m+1)个,对手也会想尽办法给你留下(m+1)的倍数个,但是此时对手没办法留下(m+1)的倍数个,那就假设他拿了m个,而此时你就有办法留下(m+1)的倍数个给对手,此时还剩m+2个,你就拿1个,只剩下m+1个物体了,不管对手怎么拿必输!前面假设他拿了m个如果还不理解那就在假设对手拿了1个,那此时还剩2*m+1个物体,你只需拿走m个就可以给对手留下(m+1)的倍数个物体,你拿走了m个还有m+1个,不管对手怎么拿必输!

结论

if(n%(m+1)==0) 先手必输
if(n%(m+1)!=0) 先手必赢

猜你喜欢

转载自blog.csdn.net/qq_51281451/article/details/112686385