不开long long见祖宗,嗯,是这样。 思路很简单,把玩几个样例过后,会发现在二进制下的l和r,只需要关心第一次出现不同的情况。(从高位往低位进发) 我的一些看法: l:1 1 1...0 an an-1...a1 r: 1 1 1...1 bn bn-1...b1 只考虑l>r,因为l=r时候答案是0。 那么从二进制的高位往低位数,就必然会出现一位二进制位r=1,l=0的时候。 至于前面有多少个1或0我们不在乎,因为他们异或了之后都是0,没有影响。 容易发现an和bn有四种组合方式(1,0),(1,1),(0,0)(0,1) 因为l<r,所以an可以由0->1。反之,b...