505 動態區間異或和

2021-09-25 09:06:34 字數 929 閱讀 8502

#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 ...