解析:
由于简单的以为每个极大联通子图做一个最小环套树就行了,写了只与正解差几行的KruskalKruskalKruskal求最小环套树,直接50pts50pts50pts滚粗了。
然而我们要求的是环套树森林,一个极大联通子图可能生成多个环套树。
于是PrimPrimPrim就没法做了。我们只能考虑KruskalKruskalKruskal,同时在并查集的根节点上维护当前的联通块是简单树还是环套树。
显然合并环套树与环套树是不够优的。
简单树和环套树合并后的图是环套树。
简单树与简单树合并后的图仍然是简单树。
简单树内部加边就成了环套树。
只需要考虑上面四种情况,如果最后有节点不在环套树森林中,肯定无解。