本文主要介紹區(qū)間最大異或和(異或的最小項),下面一起看看區(qū)間最大異或和(異或的最小項)相關(guān)資訊。
話題表面
考慮到xor可以表示為前綴和,那么\(a[p]\ oplus a[p 1]\ oplus \ ldots \ oplus a[n]\ oplus x = s[p-1]\ oplus[n]\ oplus x \)。一切都是后來才知道的,所以可以取\(s[n]\oplus x\)的值在01-trie上匹配。注意還有一個對\(p\in[l-1,r-1]\)的限制。你可以使用持久trie查詢第(r-1)個版本,然后在每個節(jié)點記錄一個(las)來指示此時的最大值(l)
單擊以查看代碼# includesiostrem # inclucstiousingnamespace std;const int n=6e5 13,logn = 21int n,m,s[n],rt[n];struct trie{int ch[n*logn][2],cnt,las[n * logn];inline int insert(int num){ int now = rt[num-1],root= cnt,p = rootlas[p]= num;for(int i = 24;i = 0;- i){int c=(s[num](1i)?1 : 0);ch[p][c^1]=ch[now][c^1];ch[p][c]= cnt;p=cnt,now = ch[now][c];las[p]= num;}返回root}inline int query(int l,int r,int x){ int p = rt[r];int res = 0;如果(!r)返回x;for(int i = 24;i = 0;- i){int c=(x(1i)?1 : 0);if(ch[p][c^1]las[ch[p][c^1]]=l)p=ch[p][c^1],res =(1i);else p = ch[p][c];} return res} } t;int main{ scanf( % d % d ,n,m);for(int i = 1;i = n;i){ scanf( % d ,s[i]);s[i]^=s[i-1];rt[i]= t . insert(i);} while(m-){ char op;(同internationalorganizations)國際組織l,r,x;cinopif(op = = ;a ){ scanf( % d ,s[n]);s[n]^=s[n-1];rt[n]= t . insert(n);} else { scanf( %d%d%d,l,r,x);printf( % d \ n ,t.query(l-1,r-1,s[n]^x));} }返回0;}標簽:
都是表達式
了解更多區(qū)間最大異或和(異或的最小項)相關(guān)內(nèi)容請關(guān)注本站點。
三星i9100怎么刷rom,三星i9100怎樣重新刷回官方版本ROM
蘋果手機車載carplay怎么用百度地圖(蘋果手機車載carplay怎么用高德地圖)
三星a5怎么樣好用嗎,三星a5手機好用嗎
聯(lián)想thinkpad 雙屏(聯(lián)想雙屏幕筆記本)
windows10開機黑屏安全模式也進不去(win10黑屏進入安全模式后怎么辦)
區(qū)間最大異或和(異或的最小項)
win10電腦瀏覽器字體亂碼如何解決視頻(win10瀏覽器字體亂碼怎么解決方法)
蘋果電腦以舊換新價格表官網(wǎng)2021(蘋果筆記本電腦以舊換新官網(wǎng)有換成功的嗎)
電腦怎么把字體調(diào)小一點(電腦怎么把字體設(shè)置大一些)
什么是將信息從其他計算機傳遞到用戶計算機(在計算機內(nèi)部用來傳遞)
重裝系統(tǒng)后分辨率不對怎么辦呀(重裝系統(tǒng)后分辨率不正常)
字體放大軟件下載安裝(放大字體app)
電腦怎么組裝臺式電腦連線,自己組裝電腦時硬盤和光驅(qū)應(yīng)該怎么接線
蘋果11pro有夜景模式嗎(蘋果11pro有夜景模式嗎怎么開)
經(jīng)常看一個人的抖音他會知道嗎(經(jīng)常看一個人的抖音他會知道嗎怎么設(shè)置)
廢紙價格最新報價,目前行情賣廢紙多少錢一斤
4t倉庫盤要分區(qū)嗎,4t硬盤怎么分區(qū)
手機怎么徹底卸載root,手機怎么清除root狀態(tài)啊求解
安卓手機軟件安裝包后綴名(安卓系統(tǒng)的軟件安裝包的后綴)
英雄聯(lián)盟更新后無法登錄(lol更新后登錄不了)