蓝桥-异或数列 python

异或:两个数相同为0 不同为1  例如 1xor1=0 0xor0=0 0xor1=1 1xor0=1 

 即0碰到任何数都不改变,1碰到1会为0、碰到0不变

思路:

把取的数看成二进制数,从最大位到最小位进行考虑

下面一位位进行分析:

1.分析可知,如果在这一位上面 有偶数个1,则不管怎么样都是平局,因为a取了1之后b总有办法让其变平,而a无可奈何。此时a,b取1个数一定相等(同为奇或同为偶),则一定平局。

2.如果这个位上面 只有1个1,则先手胜

3.如果这个位上面 有奇数个1

基于:一个奇数只能拆分成两个奇偶性不同的非负整数,当前这一位一定能分出胜负。

则问题转换为,谁获得最后一个1,谁取得胜利(前面拿到的1总会互相抵消)。此时0的作用就是相当于让自己轮空,即先后手交换。将0和1想象为一个序列。

(1)如果是偶数个0的话,相当于互相抵消,a和b都无法通过0来让自己轮空&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值