給你
n 個正整數 ai
,回答
m 個詢問:
有三種詢問: xo
rx,查詢 ma
x(ai
xorx
) or
x ,查詢 ma
x(ai
orx)
andx ,查詢 ma
x(ai
andx
) n,
m≤100000
,max(a
i)<216
對於 xo
r 只要高位到低位依次滿足盡量滿足即可,相當與在 tr
ie樹上走。對與 an
d 和 or
有些位是填
0 或
1都一樣,有些位是要盡量填某數的,然後我們就相當於把已經確定的位遮起來,然後列舉子集,這樣複雜度滿的話是 o(
n×lo
g(n)
+m×max(a
i)) 過不了的,但是今天是 io
i 賽制,我就交了一發,結果比他們寫標算的都快了好幾倍。其實如果對每個數預處理只要 o(
n×lo
g(n)
+316)
。
#include
const
int a = 1
<< 16;
template
void read(t &x)
int n, q, x, sum[a];
bool exs[a], up[a];
char op[5];
int calc(int l, int r)
int xor(int x) else
}return ans;
}int and(int x)
int or(int x)
int main()
while (q--)
return
0;}
日常訓練 壓縮
巨大的文字往往令人頭疼,特別是文字內容有大量重複的情況下,巨大的文字不便於運輸和閱讀,於是我們提出了noip nonsense obivous index pattern 荒謬的顯然索引法 一種 有效的 壓縮文字的方法。noip壓縮後的格式很特別,乙個文字壓縮後由若干個單元組成,每個單元由3部分組成...
日常訓練 Tree
j 對於h u j 時間複雜度的證明也是比較經典了,每次列舉的是sz eu s zev 相當於每次從a,b 中各任選一點,它們的lc a 為 u 這樣的點對列舉不會重複,因此總的時間複雜度為o n2 include include include include include using name...
日常訓練 mod
給定 p 1,p 2,p n,b 1,b 2,b m 求滿足 x mod p 1 equiv a 1,x mod p 2 equiv a 2,x mod p n equiv a n 的 x 對 b 1,b 2,b m 取模的結果.第一行兩個整數 n,m 接下來 n 行,每行有乙個整數 a i 接下來...