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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2021牛客暑期多校训练营3 I Kuriyama Mirai and Exclusive Or 差分 + 二进制分治

發布時間:2023/12/4 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021牛客暑期多校训练营3 I Kuriyama Mirai and Exclusive Or 差分 + 二进制分治 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳送門

文章目錄

  • 題意:
  • 思路:

題意:

給你一個數組aaa,讓你實現以下兩個操作之后輸出數組aaa

n≤6e5,ai≤230?1n\le6e5,a_i\le2^{30}-1n6e5,ai?230?1

思路:

下面介紹的思路清奇,反正我想不到。
對于兩個操作,顯然對于異或操作順序是沒有影響的,所以對于第一個操作可以直接打個差分即可。
對于第二個操作,我們本能的想把括號拆開,但是括號中是加法對于異或來說沒有分配律,所以考慮(x+(i?l))(x+(i-l))(x+(i?l))將加法轉換成或,假設xxx111的最低位置在2k2^k2k處,如果i?l<2ki-l<2^ki?l<2k,那么此時(x+(i?l))=(x∣(i?l))(x+(i-l))=(x|(i-l))(x+(i?l))=(x(i?l)),此時ai⊕(x+(i?l))=ai⊕(x∣(i?l))=ai⊕x⊕(i?l)a_i\oplus (x+(i-l))=a_i\oplus (x|(i-l))=a_i\oplus x \oplus (i-l)ai?(x+(i?l))=ai?(x(i?l))=ai?x(i?l),也就是先讓iii位置異或上xxx,讓后讓[i,i+2k?1][i,i+2^k-1][i,i+2k?1]的位置分別異或上0,1,...,2k?10,1,...,2^k-10,1,...,2k?1。所以我們記一個f[k][i]f[k][i]f[k][i]數組表示是否需要將[i,i+2k?1][i,i+2^k-1][i,i+2k?1]的位置分別異或上0,1,...,2k?10,1,...,2^k-10,1,...,2k?1,之后將x+(1<<k),l+(1<<k)x+(1<<k),l+(1<<k)x+(1<<k),l+(1<<k)即可。
這樣一直推下去,到最后會剩下一段小區間,這段區間我們直接倒著來一遍即可,因為他的后k?1k-1k?1位都是000,所以也滿足上面的性質。
我們記了一個fff數組,個人感覺怎么用它也是一個比較難想到的點。我們可以用類似倍增實則是倍增的逆過程來遞推下去,是一種分治的思想。
考慮當前遍歷到了f[i][k]f[i][k]f[i][k],那么我們可以將其分成兩段來看,兩段分別是[i,i+2k?1?1],[i+2k?1,i+2k?1][i,i+2^{k-1}-1],[i+2^{k-1},i+2^{k}-1][i,i+2k?1?1],[i+2k?1,i+2k?1]
對于第一段,我們直接將f[i][k?1]f[i][k-1]f[i][k?1]標記一下,讓后等分治下去處理即可。對于
對于第二段,我們將f[i+2k?1][k?1]f[i+2^{k-1}][k-1]f[i+2k?1][k?1]標記一下,這樣還不夠,因為這一位及其之后應該異或上2k?1,2k?1+1,...,2k?12^{k-1},2^{k-1}+1,...,2^k-12k?1,2k?1+1,...,2k?1,根據上面的轉換公式,我們可以將i+2k?1i+2^{k-1}i+2k?1差分數組的位置異或上2k?12^{k-1}2k?1即可,這樣就可以不斷的分治遞推下去,代碼寫起來很像倍增的逆過程。。

// Problem: Kuriyama Mirai and Exclusive Or // Contest: NowCoder // URL: https://ac.nowcoder.com/acm/contest/11254/I // Memory Limit: 131072 MB // Time Limit: 6000 ms // // Powered by CP Editor (https://cpeditor.org)//#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4.1,sse4.2,avx,avx2,popcnt,tune=native") //#pragma GCC optimize(2) #include<cstdio> #include<iostream> #include<string> #include<cstring> #include<map> #include<cmath> #include<cctype> #include<vector> #include<set> #include<queue> #include<algorithm> #include<sstream> #include<ctime> #include<cstdlib> #include<random> #include<cassert> #define X first #define Y second #define L (u<<1) #define R (u<<1|1) #define pb push_back #define mk make_pair #define Mid ((tr[u].l+tr[u].r)>>1) #define Len(u) (tr[u].r-tr[u].l+1) #define random(a,b) ((a)+rand()%((b)-(a)+1)) #define db puts("---") using namespace std;//void rd_cre() { freopen("d://dp//data.txt","w",stdout); srand(time(NULL)); } //void rd_ac() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//AC.txt","w",stdout); } //void rd_wa() { freopen("d://dp//data.txt","r",stdin); freopen("d://dp//WA.txt","w",stdout); }typedef long long LL; typedef unsigned long long ULL; typedef pair<int,int> PII;const int N=1000010,mod=1e9+7,INF=0x3f3f3f3f; const double eps=1e-6;int n,m; int a[N]; int d[N],f[30][N];int main() { // ios::sync_with_stdio(false); // cin.tie(0);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++) scanf("%d",&a[i]);while(m--) {int op,l,r,x; scanf("%d%d%d%d",&op,&l,&r,&x);if(op==0) d[l]^=x,d[r+1]^=x;else {int k=0;while(l+(1<<k)-1<=r) {if(x>>k&1){int now=l+(1<<k);d[l]^=x; d[now]^=x;f[k][l]^=1;x+=(1<<k); l=now; }k++;}while(l<=r) {if(l+(1<<k)-1<=r) {int now=l+(1<<k);d[l]^=x; d[now]^=x;f[k][l]^=1;x+=(1<<k); l=now; }k--;}}}for(int i=29;i>=1;i--) {for(int j=1;j<=n;j++) {if(f[i][j]) {f[i-1][j]^=1;f[i-1][j+(1<<(i-1))]^=1;d[j+(1<<(i-1))]^=(1<<(i-1));d[j+(1<<i)]^=(1<<(i-1));}}}for(int i=1;i<=n;i++) d[i]^=d[i-1];for(int i=1;i<=n;i++) printf("%d ",a[i]^d[i]);return 0; } /**/

總結

以上是生活随笔為你收集整理的2021牛客暑期多校训练营3 I Kuriyama Mirai and Exclusive Or 差分 + 二进制分治的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 四虎影成人精品a片 | 午夜在线观看影院 | 少妇熟女高潮流白浆 | 国产在线免费 | 久久两性视频 | 成人片黄网站久久久免费 | 色香影院 | 黄色生活毛片 | 一级黄色免费片 | 91们嫩草伦理 | 高清一级片 | 图片区 小说区 区 亚洲五月 | 亚洲精品在线一区二区 | 午夜精品视频在线 | 欧美肉大捧一进一出免费视频 | 一区二区 中文字幕 | 九九热视频在线免费观看 | 国产农村老头老太视频 | 欧美18免费视频 | 欧洲精品一区 | 国产亚洲精品久久久久久777 | 校园伸入裙底揉捏1v1h | jk美女又爽又黄视频 | 毛片天堂 | 99精品视频在线 | 一级黄色大片免费 | 性——交——性——乱免费的 | 久久人人爽人人爽人人片亚洲 | 久久精品国产一区二区三区 | 亚洲中文字幕一区二区 | 依依成人综合网 | 91丨porny| 国产乱子伦精品无码码专区 | 亚洲中文一区二区三区 | 91porny九色 | 福利毛片 | 国产精品一区不卡 | 亚洲精品成a人在线观看 | 久久久久久久久久久久久久久久久久久 | 最新国产拍偷乱偷精品 | 国产一区二区电影 | 黄色网页免费在线观看 | 日韩在线一区二区 | 在线电影一区二区三区 | a级一级黄色片 | 成年人黄色 | 日韩精品欧美在线 | 人妻大战黑人白浆狂泄 | 欧美美女一区二区 | 国产精品丝袜视频 | 看片免费黄在线观看入口 | 69式视频 | 久久美女视频 | 91天堂网| 岛国精品 | www.日韩av.com | 久久精品店| 亚洲成a人无码 | 婷婷综合激情 | 成人a级免费视频 | 欧美精品网| 亚洲字幕 | 天天看视频 | 精品在线观看视频 | 丁香婷婷在线观看 | 欧美精品卡一卡二 | 日韩欧美91 | 日本中文字幕一区 | 国产乱人伦精品 | 色爽爽爽| 伊人天天 | 伊人久久视频 | 免费看黄网站在线观看 | 亚洲情热| 日日摸夜夜添夜夜 | 日韩成人高清在线 | 伊人99| 久久国产夫妻 | 人妻少妇精品无码专区久久 | 亚洲图片一区二区三区 | 亚洲国产色图 | 国产欧美在线看 | 亚洲欧洲一级 | 亚洲午夜视频 | 成人国产在线视频 | 男男免费视频 | 国产综合精品视频 | 色婷婷香蕉在线一区二区 | 亚洲专区中文字幕 | 色综综 | 婷婷色影院 | 裸体女人a级一片 | 亚洲av无码一区二区三区观看 | 亚洲天堂91 | av网址在线免费观看 | 天天干干 | 欧美日韩操 | 99视频久久 | 日韩人妻一区二区三区蜜桃视频 |