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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【数学】MORE XOR

發布時間:2025/3/8 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数学】MORE XOR 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Given a sequence of nnn numbers a1,a2,? ,ana_1, a_2,\cdots, a_na1?,a2?,?,an? and three functions.

Define a function f(l,r)f(l,r)f(l,r) which returns ⊕a[x](l≤x≤r)\oplus a[x] (l \le x \le r)a[x](lxr). The \oplus⊕ represents exclusive OR.

Define a function g(l,r)g(l,r)g(l,r) which returns ⊕f(x,y)(l≤x≤y≤r)⊕f(x,y)\oplus f(x,y)(l \le x \le y \le r)⊕f(x,y)f(x,y)(lxyr)f(x,y).

Define a function w(l,r)w(l,r)w(l,r) which returns ⊕g(x,y)(l≤x≤y≤r)⊕g(x,y)\oplus g(x,y)(l \le x \le y \le r)⊕g(x,y)g(x,y)(lxyr)g(x,y).

You are also given a number of xor-queries. A xor-query is a pair (i,j)(1≤i≤j≤n)(i,j) (1 \le i \le j \le n)(i,j)(1ijn). For each xor-query (i,j)(i, j)(i,j), you have to answer the result of function w(l,r)w(l,r)w(l,r).

Input
Line 111: t(1≤t≤20)t (1 \le t \le 20)t(1t20).

For each test case:

Line 111: n(1≤n≤100000)n (1 \le n \le 100000)n(1n100000).

Line 222: nnn numbers a1,a2,? ,an(1≤ai≤109)a_1, a_2, \cdots, a_n (1 \le a_i \le 10^9)a1?,a2?,?,an?(1ai?109)

Line 333: q(1≤q≤100000)q (1 \le q \le 100000)q(1q100000), the number of xor-queries.

In the next q lines, each line contains 222 numbers i,ji, ji,j representing a xor-query (1≤i≤j≤n)(1 \le i \le j \le n)(1ijn).

It is guaranteed that sum of nnn and q≤106q \le 10^6q106

Output
For each xor-query (i,j)(i, j)(i,j), print the result of function w(i,j)w(i,j)w(i,j) in a single line.

樣例輸入
1
5
1 2 3 4 5
5
1 3
1 5
1 4
4 5
3 5
樣例輸出
2
4
0
1
4

解題思路:
emmmm,我這道題是通過打表尋找規律來解答的。。。
打表的代碼

#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <cstdlib> #include <cstring> #include <map> #include <stack> #include <queue> #include <vector> #include <bitset> #include <set> #include <utility> #include <sstream> #include <iomanip> using namespace std; typedef long long ll; typedef unsigned long long ull; #define inf 0x3f3f3f3f #define rep(i,l,r) for(int i=l;i<=r;i++) #define lep(i,l,r) for(int i=l;i>=r;i--) #define ms(arr) memset(arr,0,sizeof(arr)) //priority_queue<int,vector<int> ,greater<int> >q; const int maxn = (int)1e5 + 5; const ll mod = 1e9+7; int arr[100]; int main() {#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endiffreopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);for(int l1=1,r1=1;r1<=50;r1++) {memset(arr,0,sizeof arr);for(int l2=l1;l2<=r1;l2++) {for(int r2=l2;r2<=r1;r2++) {for(int l3=l2;l3<=r2;l3++) {for(int r3=l3;r3<=r2;r3++) {for(int k=l3;k<=r3;k++) {arr[k]++;}}}}}//輸出的1代表最后的答案這項存在,0代表不存在for(int i=1;i<=r1;i++) {if(arr[i]%2==0) printf("0 ");else printf("1 ");}printf("\n");//例如假設區間為[l,r],第一行代表當區間長度為1時,其答案就是a[l]//當區間長度為2時,其答案為a[l]^a[r]//當區間長度為3時,其答案為a[l+1]//當區間長度為4時,其答案為0}return 0; }

通過表格我們可以發現,
(r?l+1)%4=0(r-l+1) \%4=0(r?l+1)%4=0時,答案為000
(r?l+1)%4=1(r-l+1) \%4=1(r?l+1)%4=1時,答案為a[l]⊕a[l+4]⊕a[l+8]?a[r]a[l]\oplus a[l+4] \oplus a[l+8] \cdots a[r]a[l]a[l+4]a[l+8]?a[r]
(r?l+1)%4=2(r-l+1) \%4=2(r?l+1)%4=2時,答案為a[l]⊕a[l+1]⊕a[l+4]⊕a[l+5]?a[r?1]⊕a[r]a[l]\oplus a[l+1] \oplus a[l+4] \oplus a[l+5] \cdots a[r-1] \oplus a[r]a[l]a[l+1]a[l+4]a[l+5]?a[r?1]a[r]
(r?l+1)%4=3(r-l+1) \%4=3(r?l+1)%4=3時,答案為a[l+1]⊕a[l+5]⊕a[l+9]?a[r?1]a[l+1]\oplus a[l+5] \oplus a[l+9] \cdots a[r-1]a[l+1]a[l+5]a[l+9]?a[r?1]
因為有10610^6106組查詢,所以還需要求一個間隔為444的前綴異或和,這樣就可以實現O(1)O(1)O(1)查詢
代碼:

#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <cstdlib> #include <cstring> #include <map> #include <stack> #include <queue> #include <vector> #include <bitset> #include <set> #include <utility> #include <sstream> #include <iomanip> using namespace std; typedef long long ll; typedef unsigned long long ull; #define inf 0x3f3f3f3f #define rep(i,l,r) for(int i=l;i<=r;i++) #define lep(i,l,r) for(int i=l;i>=r;i--) #define ms(arr) memset(arr,0,sizeof(arr)) //priority_queue<int,vector<int> ,greater<int> >q; const int maxn = (int)1e5 + 5; const ll mod = 1e9+7; int arr[100100]; int sum[4][100100]; int main() {#ifndef ONLINE_JUDGEfreopen("in.txt", "r", stdin);#endif//freopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);int t;scanf("%d",&t);while(t--) {int n;scanf("%d",&n);rep(i,1,n) {scanf("%d",&arr[i]);sum[0][i]=sum[1][i]=sum[2][i]=sum[3][i]=0;}sum[1][1]=arr[1];sum[2][2]=arr[2];sum[3][3]=arr[3];sum[0][4]=arr[4];rep(i,5,n) {sum[1][i]=sum[1][i-4]^arr[i];sum[2][i+1]=sum[2][i+1-4]^arr[i+1];sum[3][i+2]=sum[3][i+2-4]^arr[i+2];sum[0][i+3]=sum[0][i+3-4]^arr[i+3];}int q;scanf("%d",&q);rep(i,1,q) {int l,r;scanf("%d%d",&l,&r);int len=r-l+1,ans;if(len%4==0) printf("0\n");else if(len%4==1) {ans=sum[r%4][r]^sum[l%4][l]^arr[l];printf("%d\n",ans);}else if(len%4==2) {ans=sum[r%4][r]^sum[(l+1)%4][l+1]^arr[l+1];ans=ans^(sum[(r-1)%4][r-1]^sum[l%4][l]^arr[l]);printf("%d\n",ans);}else {ans=sum[(r-1)%4][r-1]^sum[(l+1)%4][l+1]^arr[l+1];printf("%d\n",ans);}}}return 0; }

總結

以上是生活随笔為你收集整理的【数学】MORE XOR的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品扒开腿做爽爽爽男男 | jizz视频| 成人午夜免费福利视频 | 污网站免费观看 | 久久1024| 久久久久久久久久久电影 | 黄色网址中文字幕 | 美国av毛片 | 久久午夜剧场 | 妞干网精品 | 欧美a v在线 | 伊人久久亚洲综合 | 亚洲精品成人区在线观看 | 91精品国自产在线观看 | 无码人妻精品一区二区三区99v | 日本精品一区视频 | 黄色在线免费 | 黄色的网站在线 | 成人黄色免费 | 强开小嫩苞一区二区三区网站 | 亚洲永久在线 | 91福利在线看 | 97色在线观看 | 少妇三级全黄 | 日日操日日爽 | 麻豆porn | 91精品婷婷国产综合久久蝌蚪 | 日韩黄色一区二区 | 综合网在线观看 | 亚洲色欧美 | 久久精品一区二区三 | 成人欧美一区二区三区黑人一 | 性生生活性生交a级 | 日日日日干 | 性色生活片 | 加勒比不卡视频 | 无码人妻精品丰满熟人区 | 国产自产在线视频 | 日本特级片 | 欧美aaaa视频 | 日韩啪啪网 | 国产精品久久久久9999 | 99久久视频 | 波多野结衣黄色 | 国产一区二区免费 | 夜夜撸av | 国产91色在线 | mm131在线 | 奇米影视狠狠干 | 久久影视中文字幕 | 亚洲白浆 | 午夜高潮视频 | 91人人干 | 99香蕉视频 | 师生出轨h灌满了1v1 | 91网站免费看 | 日本黄色生活片 | 五月综合在线 | 99中文字幕在线观看 | 国产成人无码AA精品区 | 亚洲黄在线观看 | 秋霞一区二区三区 | 天堂av中文 | 国产精品国产三级国产专区51区 | 黄色一级欧美 | 天天摸夜夜 | 精品免费久久 | 欧美乱大交xxxxx潮喷 | 边添小泬边狠狠躁视频 | 日韩av视屏 | 97日韩精品 | 亚洲av日韩av永久无码下载 | 小嫩嫩12欧美 | 一本色道久久综合亚洲精品 | 超碰2| 久久最新视频 | 亚洲av永久无码国产精品久久 | 巨茎大战刘亦菲 | 欧美日韩一区二区三区在线 | 一区免费视频 | 亚洲欧洲综合网 | 成人短视频在线免费观看 | 久久久www成人免费无遮挡大片 | av大西瓜| 台湾三级伦理片 | 国产精品午夜一区二区 | 熟妇人妻无乱码中文字幕真矢织江 | 麻豆av一区二区三区 | 麻豆传媒网站 | 屁屁影院第一页 | 亚洲欧美日本一区 | 一区二区三区不卡视频 | 国产精品一区免费观看 | www.四色| 中文字幕在线观看视频免费 | 偷拍超碰 | 肉大捧一进一出免费视频 | 亚洲码在线观看 | 性欢交69精品久久久 |