话说要省赛了。。。
刚好最近在看数据结构,打算做一做与看过的有些许关联的题目~
正好看到树了
那就来个并查集吧~
给出n个人,他们只有可能也只属于两个帮派,然后D表示两个人之间是对立的,A表示询问两人是不是在同一帮派。
这个题是一看就知道是并查集,但真正构思的话,还是要考虑一下的。。。
由于人只可能属于两个帮派,所以如果A-B B-C 那么A与C就是同一个帮派的,这个时候我们就可以将A与C并起来了
所以一个emy[ ] 数组记录前一个对立的人,以方便后面来合并。
最后判断两人是否是同一帮派时,要注意可能会不知道当前是否在同一帮派。
另外,输入输出要用scanf 和 prinf 。。。