题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2473 题目大意: n个点,m个操作,操作时,输入M a b,表示a, b在一个集合里, 输入S a 表示将a从集合里删除掉.求最后有多少个不同的集合. 解题思路: 需要删除结点,但是并非是删除与该节点为父亲节点的子树,而仅仅是该点.所以需要用到虚父节点. 所以再开一个数组,更新节点时直接改变当前节点的父节点,使其等于大于n的父节点,这样就把其节点删除了. 代码如下: #include<iostrea