題目大意:給定乙個陣列,求這些陣列通過異或能得到的數中的第k小是多少
首先高斯消元求出線性基,然後將k按照二進位制拆分即可
注意當高斯消元結束後若末尾有0則第1小是0 特判一下然後k--
然後hdu輸出long long是用%i64d 無論c艹還是g艹都是
#include#include#include#include#define m 10100
using namespace std;
typedef long long ll;
int n,m,cnt;
bool zero;
ll a[m];
void gaussian_elimination()
zero=(k!=n);
n=k;
}ll query(ll x)
if(x)
return -1;
return re;
}int main()
}
HDU 3949 XOR 線性基 高斯消元
hdu 3949 xor hdu3949xor 搞死消元找到一組線性無關組 消出對角矩陣後 對於k二進位制拆分 對於每列只有有乙個1的,顯然可以用k的二進位制數直接異或得到第k大 對於一列由多個1的,由於二進位制性質,由於2的冪 1次方比2的 1到冪 的和要大,所以不影響大小 include inc...
HDU3949 XOR(高斯消元求線性基)
傳送門 題意 給出若干個數,求第k大的異或和 我tm已經沒心情寫這個題解了 就因為找了乙個錯誤的 當對拍這題坑了我一節多晚自習 比較有價值的就是位運算不要輕易用 最好是預處理然後 一下 高斯消元求線性無關組 有n個就說明有2n 1個答案 從大到小排序,將k二進位制分解,選最高位 特判0的情況 inc...
HDOJ 3949 XOR 高斯消元
這道題卡了好長時間,終於解決了。網上的題解很多提到 xor線性基 然而並沒有多少講解的。找學長講了一遍,又找了點資料。終於過了。關於證明,可以去看看上面那篇部落格。我這裡講一講演算法吧。關於找線性基 首先讀入n個64位整數,每個數拆成64位,相當於得到了乙個n 64的矩陣。從最高位到最低位列舉,如果...