高斯消元学习
1. 證明XOR滿足交換律,結(jié)合律,是自身的逆運(yùn)算。 比如說(shuō),1^0 = 1 ? 1^1 = 0 ?0^1 = 1 0^0 = 0 1^1^0 = 0 = 1^0^1 = 0. a^b^a=b?即一個(gè)數(shù)異或兩次相當(dāng)于無(wú)效
?
2.?從N個(gè)數(shù)中選出兩個(gè)數(shù),使XOR和最大。 解法: 我們知道兩個(gè)數(shù)字之間的異或運(yùn)算都是按位異或,也就是說(shuō)把他們各自化成為二進(jìn)制的形式,然后,每次查找與這個(gè)數(shù)字差別最大的數(shù)。 比如現(xiàn)在有,0111,0000,0101,1010. 我們查找最大的異或結(jié)果。 可以建立一個(gè)trie樹(shù)。 二進(jìn)制的比較,要從高位到低位,要使異或和最大,那么我們就枚舉第i個(gè)數(shù)字,查找與第i個(gè)數(shù)字相差最大的數(shù)字是多少,高位優(yōu)先。 比如說(shuō),查找與0 1 1 1 相互異或后得到的最大值的數(shù)字是多少,我們的思路肯定是從root開(kāi)始,依次從高位開(kāi)始尋找與0 1 1 1 相異或的數(shù)字,如果遇到相同的位置,那么就妥協(xié)處理。 3.?lN個(gè)點(diǎn)的邊帶權(quán)的樹(shù),找一條路徑使XOR和最大。 解法: 任選一個(gè)根,h_i表示的是從根節(jié)點(diǎn)到節(jié)點(diǎn)i的路徑的XOR和 X到Y(jié)的路徑XOR和表示為h_x XOR h_y 4.?從N個(gè)數(shù)中選出若干個(gè),使XOR和為K,給出方案或指出不可行。 解法: X_i 為0,表示的是第i個(gè)數(shù)不選,X_i為1,表示的是第i個(gè)數(shù)選。 現(xiàn)在考慮K的第p位的情況: 如果K的第p位是1,則第p個(gè)二進(jìn)制位為1的數(shù)字有奇數(shù)個(gè)被選擇 如果K的第p位是0,則第p個(gè)二進(jìn)制位為1的數(shù)字有偶數(shù)個(gè)被選擇 得到方程X_i1+X_i2+X_i3+...+X_is = Kp ( + 都是XOR ) 聯(lián)立60個(gè)方程,方程的解,等價(jià)于原問(wèn)題的解。轉(zhuǎn)載于:https://www.cnblogs.com/wikioibai/p/4783149.html
總結(jié)
- 上一篇: iOS 谓词的使用
- 下一篇: lucene 高亮显示