题目描述:
老C是一位老年图书管理员,最近图书馆来了一位实习生小M。然而,由于年龄关系,老C给小M的分类图书指令有时候会是相互矛盾的。对于老C的指令,你能帮助小M判断这些指令是不是合理的。
老C会给小M一系列指令来整理这些图书,这些指令总共有两种·第一种指令为1xy,代表必须将x、y两本书放到同一本书架上。·第二种指令为2×y,代表必须将x、y两本书放到不同的书架上。其中,第一种指令必须被满足,你需要判断小M能不能按照老C的要求摆放好所有的书。
输入描述:
第一行输入一个正整数M,代表总共有M个指令。之后共M行,每行输入三个整数,代表老c给出的指令。
输出描述:
输出包含一个整数,代表在满足所有第一种指令后有多少个第二种指令不能被满足。输出”0"代表小M可以满足老c所有的要求。输出“3"代表小w不可以满足老c的所有的要求,且有三个第二种指令不能被满足。(输出不包含双引号)。
解题思路:
并查集,我们把所有的1,2指令分开处理,1是把x,y放到 同一个书架上,那么x,y属于同一支,可以利用并查集思想。再检测2指令下的x和y如果处于同一个集合就是矛盾的。
==注意:==数据过大,不应该用数组存集合,应该用map