随笔分类 -  图论

摘要:最小费用最大流 题目描述 如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。 输入格式 第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来M行每行包含四个正整数ui、vi、wi、fi, 阅读全文
posted @ 2019-11-30 22:12 hezongdnf 阅读(162) 评论(0) 推荐(0)
摘要:Problem Description "P4897" 给定一个n个点m条边的无向连通图,多次询问两点之间的最小割 两点间的最小割是这样定义的:原图的每条边有一个割断它的代价,你需要用最小的代价使得这两个点不连通 Accepted code 阅读全文
posted @ 2019-11-30 13:37 hezongdnf 阅读(125) 评论(0) 推荐(0)
摘要:最大流 网络流图里,源点流出的量,等于汇点流入的量,除源汇外的任何点,其流入量之和等于流出量之和 残余网络 在一个网络流图上,找到一条源到汇的路径(即找到了一个流量)后,对路径上所有的边,其容量都减去此次找到的流量,对路径上所有的边,都添加一条反向边,其容量也等于此次找到的流量,这样得到的新图,就称 阅读全文
posted @ 2019-11-29 21:52 hezongdnf 阅读(192) 评论(0) 推荐(0)
摘要:有向图的强连通分量 强连通分量:在有向图G中,如果两个顶点vi,vj间有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。 dfn在代表时间戳,而low代表该点可以到达的点的最小dfn值,当low等于dfn的时候,就说明找到了 阅读全文
posted @ 2019-11-24 11:14 hezongdnf 阅读(233) 评论(0) 推荐(0)
摘要:Kuhn-Munkres算法 KM算法,求完备匹配下的最大权匹配,时间复杂度O(\(n^3\)) 所谓的完备匹配就是在二部图中,x点集中的所有点都有对应的匹配 且 y点集中所有的点都有对应的匹配 ,则称该匹配为完备匹配 算法思想 (1)初始化可行顶标的值; (2)用匈牙利算法寻找完备匹配; (3)若 阅读全文
posted @ 2019-11-21 10:37 hezongdnf 阅读(447) 评论(0) 推荐(0)
摘要:拓扑排序 在一个有向图中,对所有的节点进行排序,要求没有一个节点指向它前面的节点。 先统计所有节点的入度,对于入度为0的节点就可以分离出来,然后把这个节点指向的节点的入度减一。 一直做改操作,直到所有的节点都被分离出来。 如果最后不存在入度为0的节点,那就说明有环,不存在拓扑排序,也就是很多题目的无 阅读全文
posted @ 2019-11-17 09:41 hezongdnf 阅读(121) 评论(0) 推荐(0)
摘要:匈牙利算法 求二分图的最大匹配,也就是求最多有多少对$(x,y)$匹配,时间复杂度$O(n^2)$ 算法思想 对于每一个x,寻找一个y匹配,如果找到的y匹配已经有匹配了,给y的匹配换一个y(有点绕) 模板 int n,m,e; int a[maxn][maxn]; bool vis[maxn]; / 阅读全文
posted @ 2019-11-12 10:52 hezongdnf 阅读(162) 评论(0) 推荐(0)
摘要:离线Tarjan 算法思想 离线处理,先记录需要找的点 链式前向星模板 c++ include using namespace std; define mem(a,b) memset(a,b,sizeof(a)) define cin(a) scanf("%d",&a) define pii pai 阅读全文
posted @ 2019-11-10 20:36 hezongdnf 阅读(154) 评论(0) 推荐(0)