首先定义指针循环一遍为一轮,一轮中J和T(树)会总共操作n次。 最终J胜利必是全1或全0 考虑J的最优操作方式,J如果想要全1胜利,J无法使0变成1,则T也会选择不操作跟J耗着,这样就会死循环,因此J必须操作将1变为0来逼迫T操作,此时全0成为J的目标,T必然不会满足他的目标于是会操作一波,但是T将0变为1后,当前一轮就不能全0了,(注意是当前一轮,J不能操作已经操作过的数),所以J改变策略(与其说改变不如说J一开始就是要全1胜利,把1变成0只是J逼迫T操作的阴谋),此轮剩下未操作的1都不操作了,这样一来,以序列的从左向右分别作为二进制数的第1、第2位的话,这个二进制数一定是增大的。 证明为什么增大:这个就比较好证明了,众所周知2^i>2^i-1+2^i-2....而每一轮序列分别是从左向右也就是位数逐渐增大的操作,虽然前面J将1变成了0,但是只要后面出现了0变为1就肯定能把之前的二进制损失的数所弥补回来,而且之后也不会有二进制损失了。 (以上仅个人理解,错误麻烦告知,谢啦😀)
牛客网
牛客企业服务