这题算是数据结构类型的题目了吧,运用并查集可以快速地解决此类问题,从头往后读取数据,如果读取到的两个点不在同一个集合里,就将他们合并,否则,这条边就是多余的,将多余的边放入栈st中。处理完边之后,线性扫一遍结点数组,找出所有的根结点放入栈done中。
之后从st中取出一元素,将done中的两个元素连起来,然后任意去掉一个元素,留下一个元素,不断进行,直到栈st空了为止结束循环。
这个过程主要是运用好栈和并查集。。
第一题和第二题比较简单,就不在此多说,剩下的题目尝试写了下,没有写出。
我的代码: