Graph Theory - Others
welcome_z
天地转,光阴迫。一万年太久,只争朝夕。
展开
-
hdu 1269 强连通分量
tarjan: #include #include #include #define Me 100002 #define Mn 10010 #define clr(x, k) memset((x),(k),sizeof(x)) using namespace std; struct Edges { int to, next; //int w; }edg[Me]; // directo原创 2012-07-23 18:25:13 · 1045 阅读 · 0 评论 -
hdu 2767 强连通缩点
补最少的边成强连通图。 缩点后成DAG,max{ 入度为0点数, 出度为零点数}即为所求。 #include #include #include #define Mn 20020 #define Me 200010 #define mm(a, b) (a<b)?a:b #define clr(x, k) memset((x), (k), sizeof(x)) using namespac原创 2012-07-23 21:50:48 · 1761 阅读 · 0 评论 -
缩点
本文转自: http://hi.baidu.com/novosbirsk/blog/item/48573e80b202a3d09123d909.html 以前做某些图论题,常听校队的师兄说要“缩点”。但是什么是缩点,缩的是什么点,说的人很清楚,听的人却一头雾水。经过一番努力,本人终于明白了什么是“缩点”,分享一下个人的见解,若有不正确万望指正。 无向图的连通性 先明白一些概转载 2012-07-23 22:13:02 · 781 阅读 · 0 评论 -
hdu 1878
小时候的一笔画。 #include #define clr(x, k) memset((x), (k), sizeof(x)) using namespace std; const int N = 1010; int f[N], degree[N]; int find(int x) { if (f[x]!=x) f[x] = find(f[x]); return f[x];原创 2012-07-24 19:46:58 · 679 阅读 · 0 评论 -
hdu 1878 并查集模板
#include using namespace std; const int N = 1010; int f[N]; int t, n, m; int find (int x) { if (f[x]!=x) f[x] = find(f[x]); return f[x]; } int main() { scanf("%d", &t); while (t--) { scanf("原创 2012-07-24 23:07:31 · 372 阅读 · 0 评论 -
hdu 1827 强连通缩点
#include #include #include #define INF 0x3f3f3f3f #define clr(x, k) memset((x),(k),sizeof(x)) using namespace std; const int N = 1001; struct edge { int s, e, next; }edg1[2*N], edg2[2*N]; int n原创 2012-07-24 15:42:52 · 1287 阅读 · 0 评论