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