摘要: 题意:有一种叫作Pseudoforest的结构,表示在无向图上,每一个块中选取至多包含一个环的边的集合,又称“伪森林”。问这个集合中的所有边权之和最大是多少?分析:如果没有环,那么构造的就是最大生成森林,在此基础上,只要取每个块中剩余边的最大边,必然得到结果。不过要构造出每条边归属于哪个块。 看了别人的代码,发现原来可以直接构造出一个标记数组记录环,在做并查集的时候扩充if(find(u)==find(v))这一条件,可以直接得到结果。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int MAXN=1... 阅读全文
posted @ 2013-10-23 15:05 Thousand Sunny 阅读(241) 评论(0) 推荐(0) 编辑