随笔分类 -  acm 图论

有向边邻接链表存储
摘要:#include<iostream>#include<cstring>#include<cstdio>usingnamespacestd;constintnMax=1000;classedge{public:intv,nex;};edgee[nMax];intn,k,head[nMax];//head[i]是以点i为起点的链表头部voidaddedge(inta,intb){//向图中加有向边的算法,注意加上的是有向边//b为a的后续节点既是a---->be[k].v=b;e[k].nex=head[a];head[a]=k;k++;}intmain( 阅读全文
posted @ 2012-01-27 19:45 追逐. 阅读(273) 评论(0) 推荐(0)
poj 2485 Highways (prim)
摘要:http://poj.org/problem?id=2485 题不难,题目很难... 读了好几遍还是给理解错了,纠结! 就是求最小生成树里最大的边权值,拿过来poj1287一改就交,果断WA..仔细一看,权值的更新给搞错了,这是要让我郁闷到极点啊!#include<cstdio>#defineMax(a,b)a>b?a:b#defineMin(a,b)a>b?b:ausingnamespacestd;intmap[505][505];intdis[505];intn;intprim(){inti,j,ans=0,x=1;for(j=1;j<=n;j++)dis[j 阅读全文
posted @ 2012-01-22 00:44 追逐. 阅读(201) 评论(0) 推荐(0)
匈牙利算法(转)
摘要:二分图最大匹配的匈牙利算法:二分图是这样一个图,它的顶点可以分类两个集合X和Y,所有的边关联在两个顶点中,恰好一个属于集合X,另一个属于集合Y。最大匹配:图中包含边数最多的匹配称为图的最大匹配。完美匹配: 如果所有点都在匹配边上,称这个最大匹配是完美匹配。最小覆盖:在一个二分图上用最少的点(x 或 y 集合的都行),让每条连接两个点集的边都至少和其中一个点关联。根据konig定理:二分图的最小顶点覆盖数等于最大匹配数。最小路径覆盖:用尽量少的不相交简单路径(连着n条边)覆盖有向无环图G的所有结点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么 阅读全文
posted @ 2011-12-22 23:49 追逐. 阅读(350) 评论(0) 推荐(0)
poj 1287(prim)
摘要:poj又很英勇的挂掉了,无奈。。再挂上几次我就转战zoj! 今天刷了几道最小生成树,都是用prim写的#include<cstdio>#include<cstring>#defineamin(a,b)a<b?a:b#defineMAX99999999usingnamespacestd;intmap[105][105];inti,j,k;intprim(intn){intdis[105];intx=1;intsum=0;memset(dis,127,sizeof(dis));dis[1]=0;for(i=2;i<=n;i++)if(map[x][i]!=0)d 阅读全文
posted @ 2011-10-22 19:28 追逐. 阅读(1481) 评论(0) 推荐(0)