小L的占卜

2021-09-13 15:00:01 字數 3382 閱讀 5029

小l的占卜

題目描述

x的妹妹小l是一名 *** 國的占卜師,她平日的工作就是為x國進行占卜。

x國的占卜殿中有一條長度為 nnn 公尺的走廊,先人在走廊的每一公尺都放置了一座神龕,第 iii 座神龕能夠產生 aia_iai​點靈力。相同型別的神龕產生的靈力是相同的,不同型別的神龕產生的靈力是不同的,也就是說,如果兩座神龕 iii, jjj 產生的靈力 ai,aja_i, a_jai​,aj​相同,那麼神龕 i,ji, ji,j 是相同型別的神龕,否則,神龕 i,ji, ji,j 是不同型別的神龕。

在占卜時,小l首先會指定乙個區間 [l,r][l, r][l,r],區間 [l,r][l, r][l,r] 中所有出現過的神龕將參與占卜,若一種型別的神龕出現了奇數次,那麼在這次占卜中,該型別的神龕呈陰性,否則在這次占卜中,該型別的神龕呈陽性。然後,小l會指定陰性或陽性中的一種屬性,區間 [l,r][l, r][l,r] 中這種屬性的每一型別的神龕都會有恰好一座產生靈力。

接著,代表光明和黑暗的兩大祭司將輪流取走一座還有靈力剩餘的神龕中的一部分靈力,取走的靈力點數一定要是整數,取走最後一點靈力的祭司將會代表x國一年 的命運。光明祭司和黑暗祭司都是十分聰明的人,因此她們始終會採取盡量讓自己取走最後一點靈力的策略。 可以看出,這場占卜的本質是一場 nimnimnim 遊戲,最終x國一年的命運將會和產生靈力的神龕產生的靈力點數的異或和直接相關,因此,小l希望你能夠幫她計算出這個異或和。

輸入格式

第一行乙個整數 numnumnum,表示測試點編號,以便選手方便地獲得部分分,你可能不需要用到這則資訊,樣例中 numnumnum 的含義為資料範圍與某個測試點相同。

接下來一行兩個整數 nnn、mmm,表示占卜走廊的長度,以及小l進行的占卜次數。

接下來一行 nnn 個整數 aia_iai​,表示第 iii 座神龕能夠產生的靈力點數。

接下來 mmm 行,每行 333 個整數 lll、rrr、ttt,分別表示一次占卜選中的區間和屬性,若 t=0t = 0t=0,則表示選中的是陰性,若 t=1t = 1t=1,則表示選中的是陽性。

輸出格式

輸出 mmm 行,每行乙個整數 ansansans,表示產生靈力的神龕產生的靈力點數的異或和。

樣例樣例輸入

2

7 51 2 1 3 3 2 3

4 6 0

4 5 1

1 3 1

1 7 0

1 5 1

樣例輸出

231

32

樣例解釋

在第一次占卜中,區間 [4,6][4, 6][4,6] 中的神龕分布為 [3,3,2][3, 3, 2][3,3,2],其中呈陰性的神龕型別為22,它們產生的靈力點數異或和為 222。

在第二次占卜中,區間 [4,5][4, 5][4,5] 中的神龕分布為 [3,3][3, 3][3,3],其中呈陽性的神龕型別為 33,它們產生的靈力點數異或和為 333。

在第三次占卜中,區間 [1,3][1, 3][1,3] 中的神龕分布為 [1,2,1][1, 2, 1][1,2,1],其中呈陽性的神龕型別為11,它們產生的靈力點數異或和為 111。

在第四次占卜中,區間 [1,7][1, 7][1,7] 中的神龕分布為 [1,2,1,3,3,2,3][1, 2, 1, 3, 3, 2, 3][1,2,1,3,3,2,3],其中呈陰性的神龕型別為 ,它們產生的靈力點數異或和為 3。

在第五次占卜中,區間 [1,5][1, 5][1,5] 中的神龕分布為 [1,2,1,3,3][1, 2, 1, 3, 3][1,2,1,3,3],其中呈陽性的神龕型別為 1,31,3,它們產生的靈力點數異或和為 222。

資料範圍與提示

對於所有測試資料,保證 1≤l≤r≤n≤106,0≤m≤106,t∈0,1,0≤ai<2301 ≤ l ≤ r ≤ n ≤ 10^6,0 ≤ m ≤ 106,t ∈ ,0 ≤ ai < 2^301≤l≤r≤n≤106,0≤m≤106,t∈0,1,0≤ai<230。 詳細的資料範圍見下表。

80pts 莫隊

100pts

對於奇數的詢問,直接輸出異或和就行。

考慮比較麻煩的偶數。

把詢問離線,按右端點排序。

對於乙個右端點,某個數值v的貢獻是一段一段的,即00000vvvvv00000vvvv這樣

如果這時候加入乙個v,那麼上一次的v往前所有有貢獻的都會取反,即有變成沒,沒變成有

由於異或兩次等於沒有,我們直接區間異或就行。

樹狀陣列可以實現。

效率o(nlog^2)

而樹狀陣列和map的常數都不大,可以過。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

#define maxn 1000006

9using

namespace

std;

10int

n,m,a[maxn],ax[maxn],ans[maxn];

11int

tr[maxn];

12 mapls;

13struct

nodeq[maxn];

16bool

cmp(node a,node b)

19void add(int i,int

v)22

int ask(int

i)27

intr()

33int

main()

3440

for(int i=1;i<=m;i++)

44 sort(q+1,q+m+1

,cmp);

45int now=1;46

for(int i=1;i<=m;i++)

53if(q[i].t==0) ans[q[i].id]=ax[q[i].r]^ax[q[i].l-1

];54

else ans[q[i].id]=ask(q[i].l);55}

56for(int i=1;i<=m;i++)printf("

%d\n

",ans[i]);

57return0;

58 }

view code

posted @

2019-03-24 12:55

liankewei123456 閱讀(

...)

編輯收藏

生命的顏色占卜

這生命顏色是法國著名心理及靈術家ganaesia所研究出來的 只要把出生年月日相加,便可找出自己的生命顏色,從而窺探內心深處真正的自己,至於是不是真的有這麼神準,拿起筆來,自己算 生命顏色的計算方法 把你的西元出生年月日用的數字寫出來,然後將數字乙個乙個相加,直到結果變成單一數字為止。這個數字就是你...

L 小希的迷宮

上次gardon的迷宮城堡小希玩了很久 見problem b 現在她也想設計乙個迷宮讓gardon來走。但是她設計迷宮的思路不一樣,首先她認為所有的通道都應該是雙向連通的,就是說如果有乙個通道連通了房間a和b,那麼既可以通過它從房間a走到房間b,也可以通過它從房間b走到房間a,為了提高難度,小希希望...

小L的家 爸爸

小l有乙個和諧的家。爸爸具體職業不明,在 部工作,剛開始和媽媽在一起工作。媽媽是個會跳舞的語文老師。奶奶之前也是個老師。爺爺是個建築師。爸爸是最有文采的乙個。在小l看來,他的一言一行,一舉一動,都像是乙個沉默 莊重的詩人,儘管他愛開玩笑,愛做年輕人才做的 事,但小l還是認為爸爸的形象是乙個書生。他四...