ZOJ 4057(異或 技巧題)

2021-08-28 05:09:45 字數 428 閱讀 3640

題意:找乙個最大的集合,使得這些任意兩個異或後的值都比最小的那個小。

思路:這道題不需要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...