摘要: http://poj.org/problem?id=2117给出一个森林,求删掉一个点后,形成的连通块的个数。和pku1523一样的意思,只不过这里是森林了。。还要加上原来的连通块数。注意:这里的当m == 0 时要单独考虑,因为要删掉一个点,所以== n-1 而单纯的求的话是n了。。。View Code #include <cstdio>#include <cstring>#include <iostream>#define maxn 10010using namespace std;struct node{ int v; int next;}g[4*ma 阅读全文
posted @ 2012-02-13 15:14 E_star 阅读(270) 评论(0) 推荐(0) 编辑
摘要: Tarjan算法应用 (割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)问题)转载自:http://hi.baidu.com/lydrainbowcat/blog/item/2194090a96bbed2db1351de8.html基本概念:1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点。2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。3.点连通度:最小割点集合中的顶点数。4.割边(桥):删掉它之后,图必然会分裂为两个或两个以上的子图。5.割边集合:如果有一个 阅读全文
posted @ 2012-02-13 11:42 E_star 阅读(503) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1523求一个无向图的割点,以及输出删除该割点后形成的连通块数(删掉一个割点后会形成两个连通分块)今天脑子被驴了。晕晕的。。。这样一个模板题整了一上午,各种粗心错误,敲了好几遍,现在看到tarjan就恶心。。。View Code #include <cstdio>#include <cstring>#include <iostream>#define maxn 1007using namespace std;struct node{ int v; int next;}g[maxn*4];int low[ma 阅读全文
posted @ 2012-02-13 11:41 E_star 阅读(291) 评论(0) 推荐(0) 编辑