日常訓練 20170605 EasyProblem

2021-08-02 06:01:08 字數 985 閱讀 2084

給你

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 接下來...