#505. 動態區間異或和
統計描述
提交自定義測試
【題目描述】:
給定乙個由n個正整數組成的序列 。
兩種操作:
1 x y:表示將 axax的值改為y;
2 x y:表示詢問區間[x,y]的異或和;
【輸入描述】:
第一行,兩個正整數n和m,用空格隔開。
第二行,n個正整數表示序列。
以下m行,每行三個數,表示乙個操作,格式如題面。
【輸出描述】:
對於每個操作2詢問佔一行乙個整數。
對於40%的資料:1<=n,m<=10000
對於100%的資料:1<=n,m<=200,000
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
const
int maxn=
500005
;int n,m,a[maxn]
,c[maxn]
,k,x,y,z;
intlook
(int u)
void
work
(int u,
int v,
int kk)
intgetsum
(int u)
intmain()
while
(m--)if
(x==2)
printf
("%d\n"
,getsum
(z)^
getsum
(y-1))
;}return0;
}
505 動態區間異或和
給定乙個由n個正整數組成的序列 兩種操作 1 x y 表示將 axax的值改為y 2 x y 表示詢問區間 x,y 的異或和 第一行,兩個正整數n和m,用空格隔開。第二行,n個正整數表示序列。以下m行,每行三個數,表示乙個操作,格式如題面。對於每個操作2詢問佔一行乙個整數。10101 97810 9...
UOJ 505 動態區間異或和
給定乙個由n個正整數組成的序列 兩種操作 1 x y 表示將 a x ax ax的值改為y 2 x y 表示詢問區間 x,y 的異或和 第一行,兩個正整數n和m,用空格隔開。第二行,n個正整數表示序列。以下m行,每行三個數,表示乙個操作,格式如題面。對於每個操作2詢問佔一行乙個整數。10 10 1 ...
小Q的無敵異或 所有區間的異或和
給定乙個長度為n的非負整數序列,求序列的所有子區間異或值之和模998244353,和所有子區間之和的異或值。n 105,ai 106。題解 先考慮第一問。令xor i 表示前i項的異或值,xor l,r 表示第l項到第r項的異或值,那麼xor l,r xor r xor l 1 考慮xor l,r ...