日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

2021牛客暑期多校训练营3 I-Kuriyama Mirai and Exclusive Or(异或+差分)

發(fā)布時(shí)間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021牛客暑期多校训练营3 I-Kuriyama Mirai and Exclusive Or(异或+差分) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

I-Kuriyama Mirai and Exclusive Or

KeHe題解
diabolusexnihil題解

不過(guò)diabolusexnihil大佬的題解有一部分寫錯(cuò)了應(yīng)該是:每次分裂標(biāo)記bl,ib_{l,i}bl,i?需要給數(shù)組[l+2i?1,l+2i)⊕2i?1[l+2^{i-1},l+2^i)\oplus2^{i-1}[l+2i?1,l+2i)2i?1然后標(biāo)記分裂成bl,i?1,bl+2i?1,i?1b_{l,i-1},b_{l+2^{i-1},i-1}bl,i?1?,bl+2i?1,i?1?

#include<bits/stdc++.h> using namespace std; using ll=long long; template <class T=int> T rd() {T res=0;T fg=1;char ch=getchar();while(!isdigit(ch)) {if(ch=='-') fg=-1;ch=getchar();}while( isdigit(ch)) res=(res<<1)+(res<<3)+(ch^48),ch=getchar();return res*fg; } int n,q; const int N=600010; int a[N],tag[N]; bool b[N][22]; int main() {n=rd(),q=rd();for(int i=1;i<=n;i++) a[i]=rd();while(q--){int op=rd(),l=rd(),r=rd(),x=rd();if(!op) // 操作一直接差分打標(biāo)記{tag[l]^=x,tag[r+1]^=x;continue;}// 考慮區(qū)間[l,l+2^i) 每次考慮lowbit(x) ^(x+i) -> ^x^ifor(int i=0;i<=19;i++)if((x>>i&1)&&(l+(1<<i)-1)<=r)// 注意右端點(diǎn){b[l][i]^=1;tag[l]^=(x>>i)<<i; tag[l+(1<<i)]^=(x>>i)<<i;//差分打標(biāo)記l+=(1<<i);x+=(1<<i);}// 最后一段區(qū)間[l,r]// 此時(shí)如果l+2^i<r 那么 x>>i&1一定是0 同樣 ^(x+i) -> ^x^i效仿上面做法即可for(int i=19;i>=0;i--)if((l+(1<<i)-1)<=r){b[l][i]^=1;tag[l]^=(x>>i)<<i;tag[l+(1<<i)]^=(x>>i)<<i;l+=(1<<i);x+=(1<<i);}}// 標(biāo)記分裂for(int i=19;i>=1;i--)for(int j=1;j<=n;j++){if(!b[j][i]) continue;b[j][i-1]^=1;// 分裂標(biāo)記1if(j+(1<<(i-1))<=n){b[j+(1<<(i-1))][i-1]^=1;// 分裂標(biāo)記2// [l+2^{i-1},l+2^i) 需要打上抑或 2^{i-1}的標(biāo)記tag[j+(1<<(i-1))]^=(1<<(i-1));if(j+(1<<i)<=n) tag[j+(1<<i)]^=(1<<(i-1));}}for(int i=1;i<=n;i++){tag[i]^=tag[i-1];printf("%d%c",a[i]^tag[i]," \n"[i==n]);}}

一輩子學(xué)不會(huì)的做法www

總結(jié)

以上是生活随笔為你收集整理的2021牛客暑期多校训练营3 I-Kuriyama Mirai and Exclusive Or(异或+差分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。