題意:找乙個最大的集合,使得這些任意兩個異或後的值都比最小的那個小。
思路:這道題不需要01字典樹,2進製裡面2的次方的最高位都是1,所以只需要在2,4,8,16,……區間放入小於上界的數即可。比如x小於4的時候,任意兩個異或起來絕對小於4,因為x小於4時與4最高位對應的是0,0^0=0,以此類推……最後暴力出最大值就行了。
#includeusing namespace std;
int a[35];
void init()
}int main()
; for(int i=0;i}
}int ans=-1;
for(int i=1;i<=30;i++)
printf("%d\n",ans);
}return 0;
}
異或相關的雜題
連續多場 cf 都卡在 xor 題,並且以各不相同的方式寄了。不得不惡補一下這方面的處理技巧 codeforces 訪問有點慢,所以掛洛谷的題目鏈結 e 和 s 在玩博弈遊戲,e 先手 s 後手。給一棵 n 個節點的樹,節點的值包含 1,n 中的每乙個值。e 先隨便選擇乙個點,占領它 點 u s 只...
字串 異或運算 乙個異或運算引發的設計技巧(1)
上期內容 create clock你用對了嗎 異或運算是基本的邏輯運算,在fpga設計中經常遇到。其實現方式也很簡單,例如1bit的a和b相異或,只需要乙個2輸入查詢表 lut2 就可以完成。但是,如果a和b的位寬達到了512位,而且實際演算法包含很多此類運算,且要求時鐘執行在600mhz,採用lu...
異或運用 演算法題 缺失的數
題目 給出乙個包含 0 n 中 n 個數的序列,找出0 n 中沒有出現在序列中的那個數。public int findmissing int nums int result total 0 int result incomplete 0 for int i 0 i nums.length i for...