hdu5011(Nim游戏变形+证明)

这题很多人都能AC,但是能有多少人会证明呢?
题意:给定n堆石头,两个玩家轮流操作,每次选一堆取走若干石头,然后可以放弃操作,或者把剩下的这堆石头分为两堆,不能操作的人输。

思路分析:  先不考虑分成两堆这个操作,那么就是Nim游戏,异或为0,则为必败态。现在考虑这道题目,1、假如一开始异或得到的结果非0,那么先手肯定能够在某堆中选若干石头,使得异或为0,然后后手无论怎么操作,先手只要跟着他做就可以了,这种情况下先手必胜。2、考虑一开始异或得到的结果为0,先手在某堆中取若干石头,那么现在的异或结果肯定非0,因为先手想赢,他会尽量使得异或结果为0,所以这是他会将剩下的该堆石头分成两堆,这里是关键。现在我要证明异或结果非0的情况,无论怎么拆分以堆石头,异或结果仍然非0.将要操作的堆当做x,剩下的堆异或等效为y,x^y != 0 ,现将x分成x1和x2,如果x1^x2^y = 0,那么x1^x2 = y,这与条件矛盾。因此证明这题和Nim游戏的解法是一样的,分操作可以直接无视。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值