haohao對XZC的刁難
時間限制:1000ms
內存限制: 128M
題面:
衆所周知,XZC的npy haohao是一個成績優異的好孩子,熱愛學習算法。這天haohao又在刷題了,她很快地切掉了“敵兵佈陣”,但是卡在了一道貼海報的題目上。她對叫一旁的XZC幫他debug,XZC專心於玩他的魔方,正在背COLL公式,順口回了一句:”線段樹數據那麼大,我才懶得給你對拍,Wa了就是代碼太醜了。“ …他完全沒有注意到haohao生氣的表情,唉,這個直男,又把npy惹生氣了。他只好灰溜溜地幫她debug,看了半天,發現題目是多組輸入… 雖然haohao迅速AC了這題,但她還是很生氣…
XZC靈機一動,說道:”我們來玩遊戲叭“。haohao眼珠一轉,說:”好啊“。我有一串長度爲n的數列,你可以問我m個問題,每個問題問兩個整數x,y(1<=x<=y<=n),我會回答你下標在區間[x,y]之內所有數的異或和。然後你必須還原這個數列,不然我就再也不理你了,哼!
XZC一頭黑線,haohao這是學線段樹學魔怔了?問着問着,他隱隱約約覺得haohao在故意回答錯誤的異或和,前後好像有矛盾,但是他找不到證據,你能幫幫他嗎?
輸入格式
輸入第一行爲兩個整數n,m(1<=n<=10000, m<=100000)
然後又m行,每行有三個整數L,R,sum(1<=L<=R<=n, 0<=sum<2^31)分別表示區間左端點,區間右端點,和區間異或和。
輸出格式
第一行輸出一行”There is(are) totally cnt problem(s)“,不輸出引號,cnt表示和前面出現矛盾的回答的個數。
然後輸出cnt行,每行輸出的格式爲”In the qurey ID, the sum xor of [ L, R] is supposed be rightAns, not wrongAns“ 。不輸出引號。ID代表與前面矛盾的是第幾個詢問,L,R分別代表詢問區間的左右端點,wrongAns代表haohao錯誤的回答,rightAns代表區間[L,R]合理的異或和注意:ID輸出佔7個字節,L和R佔5個,rightAns和wrongAns佔11個,靠右輸出。
樣例輸入:
5 8
5 5 5
5 6 3
6 6 0
5 6 2
1 1 1
1 2 3
1 3 0
3 3 2
樣例輸出:
There is(are) totally 3 problem(s)
In the qurey 3, the sum xor of [ 6, 6] is supposed be 6, not 0
In the qurey 4, the sum xor of [ 5, 6] is supposed be 3, not 2
In the qurey 8, the sum xor of [ 3, 3] is supposed be 3, not 2
樣例解釋
- cal[5,5] = 5說明 arr[5] = 5
- cal[5,6] = 3說明 arr[5] xor arr[6] = 3, 得出 arr[6] = 6
- cal[6,6] = 0說明 arr[6] = 0,與(2)的結論矛盾,(3)錯誤
- cal[5,6] = 2與(2)矛盾,(4)錯誤
- cal[1,1] = 1說明 arr[1] = 1
- cal[1,2] = 3說明 arr[1] xor arr[2] = 3, 得出arr[2] = 2
- cal[1,3] = 0說明 arr[1] xor arr[2] xor arr[3] = 0
結合(6),(7)我們可以得到arr[3] = 3 - cal[3,3] = 2與之前的結論矛盾,(8)錯誤
xzc
2020.2.18