LG#P2024. [NOI2001] 食物链

提交8 通过2
通过率25%
时间限制2000ms
内存限制512MiB
    ID: 12127 传统题 2000ms 512MiB 尝试: 8 已通过: 2 难度: 普及+/提高- 上传者: 标签>GESPGESP强化C++c++编程题并查集扩展域并查集关系维护

题目描述

题目描述

动物王国中生活着三类动物 A,B,CA,B,C。它们的捕食关系构成一个封闭的环:AABBBBCC,而 CC 又吃 AA

现在有 NN 只动物,编号为 11NN。每只动物都属于 A,B,CA,B,C 中的一类,但它的具体类别并不知道。有人按照顺序说出 KK 句话,每句话采用下面两种形式之一:

  • 1 X Y:表示动物 XX 与动物 YY 属于同一类;
  • 2 X Y:表示动物 XX 吃动物 YY

这些话有真有假。判断一句话时,只能依据题目给出的捕食规律和它之前已经判定为真的话。出现以下任意情况,这句话就是假话:它与此前的真话发生矛盾;XXYY 的编号大于 NN;它声称某只动物吃自己。除此之外,这句话被视为真话,并继续作为判断后续语句的依据。

请按照原顺序检查全部语句,统计其中假话的总数。

输入格式

第一行包含两个整数 N,KN,K,分别表示动物数量和语句数量。

接下来 KK 行,每行包含三个整数 D,X,YD,X,Y。当 D=1D=1 时表示 XXYY 同类;当 D=2D=2 时表示 XXYY

输出格式

输出一行一个整数,表示按顺序判断后得到的假话总数。

数据范围与约定

对于全部数据,1N5×1041\le N\le 5\times 10^41K1051\le K\le 10^5D{1,2}D\in\{1,2\},并且 X,Y<232|X|,|Y|<2^{32}。输入中的动物编号可能超出 11NN 的合法范围。

可见测试数据

输入数据 1

100 7
1 101 1
2 1 2
2 2 3
2 3 3
1 1 3
2 3 1
1 5 5

输出数据 1

3

输入数据 2

1 4
1 1 1
2 1 1
1 2 1
2 1 2

输出数据 2

3

输入数据 3

3 5
2 1 2
2 2 3
2 3 1
1 1 2
1 1 1

输出数据 3

1