摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27016题意:求一个连通图去掉任意一个点以及与它相连的边,图中的所有蚂蚁可以通过某些点中建造的矿井逃到地面,求最少要在图中的几个点中建造矿建,这样建造矿井的方案的总数。思路:首先求点双连通分量,标记割点,然后我们可以分析,若一个连通分量中有且仅有一个割点,那么除了这个割点之外,别的点都能造矿井,且只需在除了这个割点之外的某个点上造一座矿井就可以了(假设破话的是这个割点,那么这个连通分量中的蚂蚁可以通过有矿井的点逃到表面,但是如果矿井恰好造在割点上,那么一旦去掉了割 阅读全文
posted @ 2013-09-25 21:47 ihge2k 阅读(628) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27010思路:首先Tarjan标记桥,然后对于dfs遍历整个图,我们可以得出一个简单的结论,就是如果一个双连通分量中存在奇圈,那么这个双连通分量中的所有点都可行,于是我们可以dfs染色判奇圈。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 22222 7 8 struct Edge{ 9 int v,next;10 }edge[MAXNd... 阅读全文
posted @ 2013-09-25 11:05 ihge2k 阅读(304) 评论(0) 推荐(0) 编辑