[SDOI2007]01字符串问题

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 str.in 输出文件 str.out
【问题描述】
大家都知道,计算机内存中的信息是由若干个二进制位组成的,这些二进制位可以是 1 ,
也可以是 0 。现在,有一个由 n 个二进制位组成的内存,二进制位的编号从 1 至 n (注
意从1 开始),并给出 m 条关于内存中位的描述,求出这些描述中有多少条是错误的。
描述如下:每个描述是一行,由 x , y , z 三个
如果 z =0,表示 [x , y ]中有偶数个 1 (包括 x , y )
如果 z =1 ,表示[x, y ] 中有奇数个 1 (同样包括 x , y )
如果一条描述与前边某些正确的描述矛盾,则该描述是错误的,否则该描述是正确的
例如:
第一条 1,1,1
第二条 1,1,0
显然第二条是错误的。
例如
第一条1,8,0
第二条1,4,1
第三条5,8,0
也可以推出第三条是错误的,因为1 到8 之间偶数个1,1 到4 之间奇数个1,5 到8
之间也应是奇数个1,与第三条矛盾。
【输入】(str.in)
第一行 n m 。 n<= 50000 , m <= 200000 。
以下m行,每行 x , y , Z 三个数。 1 <= x <= y <= n
z = 1 或 0 。
【输出】(str.out)
一个数,描述错误的总条数。
【样例输入】
5 10 1
1 4 1
1 5 1
3 5 1
4 4 1
1 3 0
1 5 0
3 5 1
2 3 1
4 4 0
2 4 1
【样例输出】
3