1. 程式人生 > >python 牛客真題 混合原料

python 牛客真題 混合原料

一道很讚的題目。遵循這樣一個最基本的思路,最大的數肯定不能通過異或生成,所以必須要取。遵循這個思路:除了這個最大的數其他所有與其位數相同的數都可以通過異或生成。再看異或這個操作本身的特殊性(不同為1,相同為0)即意味著如果最大的數的位數為4,那麼肯定要取到位數為3的最大數。

n=int(input())
num=[int(c) for c in list(input().split())]
def getHibit(n):
    count=0
    while n:
        count+=1
        n>>=1
    return count
num.
sort(reverse=True) i=0 while i<n and num[i]: high=getHibit(num[i]) for j in range(i+1,n): if high==getHibit(num[j]): num[j]^=num[i] num.sort(reverse=True) i+=1 print(i)