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