随笔分类 - 图论题
摘要:训练地址先总结下: 第一:感觉难点在于建图第二:①:对于差分不等式,a - b = c ,建一条 b 到 a 的权值为 c 的边,求的是最长路,得到的是最小值③:存在负环的话是无解④:求不出最短路(dist[ ]没有得到更新)的话是任意解第三:一种建图方法:设x[i]是第i位置(或时刻)的值(跟所求...
阅读全文
摘要:http://poj.org/problem?id=3723分析:因为,图可能不连通,求所有最大生成树的总和最大,即最大权森林。prime算法会超内存。 1 #include 2 #include 3 #include 4 #define _Clr(x, y) memset(x, y, sizeo...
阅读全文
摘要:以poj3895为例: 思想很简单,就是有dfs遍历图并且用一个数组记录所走的长度。当来到一个点是已经访问过的,则肯定形成一个环,更新环的长度,直到所有点访问完为止。代码: 1 #include 2 #include 3 #include 4 #define _Clr(x, y) memset(x,...
阅读全文
摘要:转载自这里 给你一个N个顶点M条边的带权有向图,要你把该图分成一个或多个不相交的有向环。且所有定点都被有向环覆盖。问你该有向环所有权值的总和最小是多少? 答案就是:有向环最大权值覆盖=最优匹配。 如果,改为无向图,问你无向环最大权值覆盖?答案也是一样的。只是在建图的时候把有向改为无向即可。分...
阅读全文
摘要:poj 2762 题意:任给一个图,问你对于任意的两个点x,y之间是否存在从x到y或从y到x的路径? 分析:这显然是要求图是否为单向连通图?我们可以对强连通分量进行缩点,缩点后的图一定是一个有向无环图; 现在,问题等价于给你一个有向无环图,问你它是否为单向连通图。这样,我们就可以对有向无环图进行...
阅读全文
摘要:首先,强连通分量可以缩点,所有缩点后的图一定是一个有向无环图,出度为0的点受其他出度不为0的点的仰慕.因为要求的是受其他所有点仰慕的点的个数(强连通内互相仰慕),所以,当只有一个出度为0的点时,输出它所在的强连通分量的顶点个数就是答案. 1 #include 2 #include 3 ...
阅读全文
摘要:边双连通分量:边连通度大于1的连通分量 在树中至少添加多少边能使得图变为边双连通图 ?添加的边=(叶子节点+1)/2. 在一个无向图中,我们可以把它的边双连通分量缩成一个点,然后一定会得到一颗树,然后按上述方法求叶节点即可。 1 #include 2 #include 3 #in...
阅读全文
摘要:割边:若在连通图中删除某条边,图不再连通,则删除的边为割边。 根据low[i],和dfn[i]的n定义,我们知道,若(u,v)是生成树的一条边,且low[v] > dfn[u],则(u,v)为割边------桥。 zoj 2588 题意:给n个顶点,m条边, 可能有重边。问你图中有几...
阅读全文
摘要:1 #include 2 #include 3 #include 4 #define _clr(x, y) memset(x, y, sizeof(x)) 5 #define Min(x, y) (x Q; 16 17 // 一般预流推进算法 --47ms 18 void...
阅读全文
摘要:题目大意是: K台挤奶机器,C头牛,K不超过30,C不超过200,每台挤奶机器最多可以为M台牛工作,给出这些牛和机器之间,牛和牛之间,机器与机器之间的距离,在保证让最多的牛都有机器挤奶的情况下,给出其中距离最长的一头牛移动距离的最小值。 首先用Floyd求出任意两点之间的最短距离,然后再...
阅读全文
摘要:转载:http://www.cppblog.com/MatoNo1/archive/2011/03/26/142766.aspx 我们知道在一个图中,每个点最多只能匹配一条边的情况,是二分图的最大匹配问题.然而还有种情况是:每个点可以匹配多条边,但有上限,假设为L.即Li表示最多点i可以和Li条边...
阅读全文
摘要:题意: 给你N个人,M条年龄大小的关系,现在打算把这些人分成不同的集合,使得每个集合的任意两个人之间的年龄是不可比的。问你最小的集合数是多少? 分析: 首先,假设有一个环,那么这个环中的任意两个点之间都是可比的,并且,和这个环相连的任意一个点或环也和这个环是可比的,因为关系具有传递...
阅读全文

浙公网安备 33010602011771号