
图论
文章平均质量分 79
wwwiskey
学生
展开
-
图的存储(链式前向星)
/*所谓的这种存储边的方法,就是邻接链表在的静态实现(人称:池子法) *就是比较省时间开销 */#include #include #define MAXM 1000005#define MAXN 10005struct node { int v, w, pre;}edge[MAXM<<1];int p[MAXN], nEdge; //p每个点相关边的起始位置,nEdg原创 2012-08-18 16:07:08 · 4956 阅读 · 0 评论 -
无向图割点(割顶)、桥(边的双连通分量+缩点)
求割顶(割点),主要的算法结构就是DFS,一个点是割点,当且仅当以下两种情况:(1)该节点是根节点,且有两棵以上的子树(2)该节点的子节点中的任一个,没有到该节点祖先的反向边(就是说如果没有这个割顶,那么这个子节点和那个祖先之间就不能连通)代码:(连通图)#define N 103vector g[N];int n, low[N], dfn[N], f[N];bool v原创 2012-08-15 14:00:52 · 7304 阅读 · 3 评论 -
最大流、最小费用最大流【模板】
一下代码版权归:HIT xiaodai最大流模板:(题目链接)#include #include #include using namespace std;#define N 1200#define M 50220#define INF 0x3f3f3f3fclass MaxFlow {public: struct record { int原创 2012-08-18 11:31:32 · 3348 阅读 · 0 评论 -
POJ 3189 Steady Cow Assignment【网络流】
题意:每个奶牛对所有的牛棚有个排名(根据喜欢程度排的),每个牛棚能够入住的牛的数量有个上限,重新给牛分配牛棚,使牛棚在牛心中的排名差(所有牛中最大排名和最小排名之差)最小。牛棚个数最多为20,那么直接枚举最差排名和最好排名,对于每种情况判断是否合法,取最小值。构图:源点与每头牛之间连接一条边,边权为1,每头牛与枚举范围内的牛棚之间连接一条边,边权为1(表示每头牛可以入住的牛棚)原创 2013-06-19 12:18:09 · 1630 阅读 · 0 评论 -
POJ Secret Milking Machine 【网络流+二分】
题意:各一个地图,两点之间有若干条路,要在节点1和节点n之间行走t次(就是问1到n的路径数至少为t,每一条路径不能有重复),问所有路径里面最长的部分(这个题目特别强调,不是路径长度和,是路径中相邻两点的距离)最小是多少。网络流+二分。二分路径最长的一段,根据二分值构图。构图方法:如果两点路径长度小于x,则两点之间连接一条边,权值为1(如果已经连接了,权值加1)。最大流既原创 2013-06-17 16:49:18 · 1022 阅读 · 0 评论 -
POJ 2112 Optimal Milking【网络流+二分+最短路】
求使所有牛都可以被挤牛奶的条件下牛走的最长距离。Floyd求出两两节点之间的最短路,然后二分距离。构图:将每一个milking machine与源点连接,边权为最大值m,每个cow与汇点连接,边权为1,然后根据二分的距离x,将g[i][j] 最大流的结果是可以被挤奶的cow数量,判断是否等于总的cow总量即可。#include #include #include原创 2013-06-17 14:20:21 · 1024 阅读 · 0 评论 -
zoj-1015-fishing net 【弦图的判断】
这道题目是裸的弦图的判断,弦图的定义和算法,参考 http://wenku.baidu.com/view/6f9f2223dd36a32d73758126.html?from=rec&pos=0&weight=9&lastweight=2&count=5###弦:连接环中不相邻的两个点的边弦图:一个无向图称为弦图,当图中任意长度大于3的环都至少有一个弦。算法:先对图进行重新原创 2012-11-14 09:16:54 · 3260 阅读 · 2 评论 -
POJ 1698 Alice's Chance 【网络流-构图】
网络流构图题目,构图方式:每部电影与源之间连边,权值为本电影拍摄需要的天数。将所有的天数都抽象成点(最多为50*7),将每部电影与可行的日子之间连接一条边,权值为1,然后将所有的日子与汇点连接一条边,权值为1.在这个图上面跑最大流,流经每个电影的最大流量为规定的天数,而且,如果从某个电影出发的流流经了某天的话,将不会有其它流流经——因为每一天与汇点之间的权值为1,即最多有一个电影的原创 2013-06-17 09:58:46 · 2095 阅读 · 0 评论 -
POJ 1274 The Perfect Stall 【二分图匹配】
裸的二分图匹配匈牙利算法:#include #include #include #include #include using namespace std;#define N 220int n, m;vector adj[N];int pre[N];bool used[N];bool CrossPath(int k) { for (int i=0原创 2013-06-16 16:06:16 · 1305 阅读 · 0 评论 -
POJ 1273 Drainage Ditches 【网络流】
裸网络流,注意一下可能又重边就可。献上一个Dinic模板#include #include #include #include using namespace std;#define N 210int g[N][N];class Dinic {public: static const int INF = 1000000007, SIZE = 205; int原创 2013-06-16 15:23:37 · 1062 阅读 · 0 评论 -
ZOJ 3223 Journey to the Center of the Earth 【二维最短路】
二维的最短路。题意:无向图,节点之间除了边外有“快捷方式”,快捷方式可以看作特殊的边,从起点到终点,给定时限,求使用快捷方式的最少次数。dist[i][j] :到达第i个点,且经过了j个快捷路径的最短时间。优先队列的最短路优化。1。如果已经走到终点,还是要继续扩展,因为可能出现使用快捷方式更少的方案。2。如果已经到终点,可以用当前这个快捷方式数作为限制,继续扩展的节点的使用快捷原创 2013-04-21 20:08:20 · 954 阅读 · 0 评论 -
ZOJ 1311 Network 割顶
裸的连通图求割点#include #include #include #include #include using namespace std;#define N 103vector g[N];int n, low[N], dfn[N], f[N];bool vis[N];void dfs(int u, int depth, const int &root) {原创 2013-05-24 12:34:58 · 1137 阅读 · 0 评论 -
ZOJ 3691 Flower
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4974题意:给出空间中的一些点,在这些位置上各有 F[i] 朵花,最多可以从这个位置移出 L[i] 朵花(包括从其他地方移过来的),问最小移动半径 R 是多少时,能够把所有位置上的花移动到位置 1二分半径(二分距离的平方,避免精度损失。结果一定是某两点之间的距原创 2013-04-11 20:49:12 · 1373 阅读 · 0 评论 -
最大权闭合图
[网络流]最大权闭合图(转载)来自: http://hi.baidu.com/%C6%AE%BB%A8%C4%EA%B4%FA/blog/item/45d4bb1765e7044721a4e960.html以下内容参考 胡伯涛 《最小割模型在信息学竞赛中的应用》,感谢他为我们提供这么优秀的论文。看不懂以上论文的同学,可以试试看一下以下内容,本文无大量的数学符号,方便阅读理解。转载 2012-09-21 17:13:17 · 897 阅读 · 0 评论 -
二分图匹配
二分图:设G=(V,{R})是一个无向图。如顶点集V可分割为两个互不相交的子集,并且图中每条边依附的两个顶点都分属两个不同的子集。则称图G为二分图。匹配:给定一个二分图G,在G的一个子图M中,M的边集{E}中的任意两条边都不依附于同一个顶点,则称M是一个匹配。最大匹配:匹配中边数最多的匹配。完全匹配(完备匹配):如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,原创 2012-08-16 11:26:37 · 1473 阅读 · 0 评论 -
强连通分量算法Kosaraju 和 Tarjan
Kosaraju算法对每个不在树中的点开始DFS一次,并记录离开各点的时间,这里是离开的时间,而不是到达时的,比如有图1->2 2->3 则1,2,3分别对应的时间是3 2 1,因为3没有出边,所以最先离开,其次是2,最后是1,DFS后,在同一棵树中的点,如果dfn[v]>dfn[u]则说明点从v有可能到达u,而这棵树中的dfn[]最大的点,肯定可以到达每个点,从而在原转载 2012-08-17 11:32:26 · 1693 阅读 · 0 评论 -
欧拉回路(道路)
无向欧拉图:定义:给定无孤立结点图G,若存在一条路,经过图中海边一次且仅一次,该条路称为欧拉路;若存在一条回路,经过图中海边一次且仅一次,该回路称为欧拉回路。具有欧拉回路的图称作欧拉图。定理:无向图G具有一条欧拉路,当且仅当G是连通的,且有零个或两个奇数度结点。欧拉路和欧拉回路的概念,很易推广到有向图中去。 有向欧拉图 :定义:给定有向图G,通过图中每边一次且仅一次的一条单向路原创 2012-08-16 09:25:23 · 5820 阅读 · 0 评论