xor序列 (線性基)

2021-08-28 03:50:14 字數 884 閱讀 1476

小a有n個數,他提出了乙個很有意思的問題:他想知道對於任意的x, y,能否將x與這n個數中的任意多個數異或任意多次後變為y

第一行為乙個整數n,表示元素個數

第二行一行包含n個整數,分別代表序列中的元素

第三行為乙個整數q,表示詢問次數

接下來q行,每行兩個數x,y,含義如題所示

輸出q行,若x可以變換為y,輸出「yes」,否則輸出「no」

示例1複製

5

1 2 3 4 5

36 7

2 13 8

複製

yes

yesno

對於(6,7)來說,6可以先和3異或,再和2異或

對於(2,1)來說,2可以和3異或

對於(3,8)來說,3不論如何都不能變換為8

對於100%的資料,n,q<=105

保證所有運算均在int範圍內

#includeusing namespace std;

typedef long long ll;

#define rep(i,a,b) for(int i=a;i=a;--i)

const int n=1e5+10;

ll a[n],p[70];

void inser(int n)

a[i]^=p[j];}}

}}int main()

inser(n);

int m;

scanf("%d",&m);

while(m--)

}if(tmp)printf("no\n");

else printf("yes\n");

}return 0;

}

牛客17968 xor序列(線性基學習)

f f就取 每個整數都可以看作乙個向量,v vv就取輸入的整數集合誘導出的向量集合。線性基本質上是一組基向量,只不過形式上我是用整數表示的。用b kb k bk 表示最高位的1 11在第k kk位的向量 整數 對於乙個新加入的數p pp 其實就是乙個向量 從最高位開始掃,發現當前位 第k kk位 等...

線性基 BZOJ 4269 再見Xor

划水中。遲早要完 顯然要線性基。考慮求k k 大。對於基的每乙個位置,因為其最高非零位就是位置標號,那看一下 k role presentation k k的這一位是否為 1 1 看是否要異或上 或者不異或 使得這一位得到的答案較大。include define show x cerr x x en...

線性基 HDU3949 XOR 題解

給出 n n 個數,求選出的非空集合中異或和第 k role presentation k k小的異或和 異或和相同算一次 沒有 k k 個輸出 1 role presentation 1 1。如果構造線性基時將矩陣消成對角矩陣,得到的線性基就有乙個很棒的性質 最高位為 i i 的數至多只有乙個,且...