摘要: 题大意:给出n个点,编号1~n,给出至少n-1条边。问在需要增加几条边是该图成为双连通图。因为至少有n-1条边,所以一定是连通图,利用tarjan算法找出双连通分量,如果我们把每个双连通分量看成一个顶点,那么就构成了一棵树,再求出叶子的个数m,(m+1)/2就是答案了。我不解的是这道题需要除去重边才能AC........代码如下:#include<iostream>#include<vector>#include<cstring>using namespace std;vector <int> map[5001];int pre[5001],lo 阅读全文
posted @ 2011-07-24 19:18 书山有路,学海无涯 阅读(324) 评论(0) 推荐(0) 编辑