
最大流最小割
EnjoyingAC
bugger,写bug爱好者。
展开
-
网络流建模与模型变换
多源多汇问题问题描述:源有多个,汇也有多个,流可以从任意一个源中流出,最终可以流向任意一个汇。总流量等于所有源流出的总流量,也等于所有汇流入的总流量。建立一个超级源点s’和超级汇点t’。从s‘向每一个源点引一条有向弧,容量为无穷大;从每一个汇点向t’引一条有向弧,容量为无穷大。结点容量问题描述:每个结点都有一个允许通过的最大流量,称为结点容量。把每个结点u分裂成两个结点u1和u...原创 2018-05-02 14:20:37 · 216 阅读 · 0 评论 -
HDU4289 Control (破坏结点使不存在可行流)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4289读题给定一个无向图。 一个罪犯要从城市S逃到城市T,为了逮捕罪犯,需要在某些城市设立观察点,罪犯逃到观察点所在的城市就会被逮捕。设立观察点是需要钱的,求最少需花费多少钱在设立观察点上才能万无一失的逮捕罪犯。解题罪犯从S逃到T的路线可以看作是一个S到T的可行流。设立观察点相当...原创 2018-06-08 19:23:37 · 161 阅读 · 0 评论 -
求流网络的一组最小割边集
算法说明跑一遍dinic算法求出最大流后。在残量网络中,容量大于0表示可以走。 将从源点出发可以到达的点看作S集,剩下的看作T集。如果边(u,v)满足u属于S集,v属于T集,那么该边就是最小割边集中的边。而确定S集和边集可以通过一次DFS或BFS标记得到。例题UVA-10480 Sabotage AC代码//跑一遍dinic算法后,//在残量网络中,从源点出发能到...原创 2018-06-09 14:58:31 · 1102 阅读 · 0 评论 -
UVA10480 Sabotage (Dinic版最小割边集)
读题给定n和m,n表示点的数量,m表示边的数量。 再给m条边(u,v,w)。w表示割点该边的花费。注意是无向图,反向边的容量与正向边一致。将结点1看作源点,结点2看作汇点,求一组最小割边集。解题最小割等于最大流。如果“一条边满流”和“去掉该边后网络的最大流减小的量等于该边的容量”两个条件同时满足,那么该边就是最小割边集的一条边。 故在跑一遍dinic算法后,在残量网络中,将源点S能...原创 2018-06-09 15:08:11 · 651 阅读 · 0 评论 -
CSU 2114 Open-Pit Mining (最大权闭合子图模板题)
题意一共有块宝石,换取一块宝石会获得价值v,花费代价v。要想获得宝石u必须先获得在u上面的宝石。解题题目描述符合闭合图的定义——图中选一个子图使得子图中点连出边的终点还在子图中。 所以这题就是求最大权闭合子图。 设一个源点S,汇点T。 从S到点权值为正的结点引入一条有向弧,容量为点权值。 从点权值为负的结点到T引入一条有向弧,容量为点权值的绝对值。 原图结点与结点的有向弧保留...原创 2018-07-29 19:48:34 · 238 阅读 · 0 评论 -
HDU 4971 A simple brute force problem(最大权闭合子图)
题意有N个项目需要解决,其中会遇到M个技术问题。 完成每个项目会获得正收益,解决一个技术问题需要付出代价。完成一个项目之前需要先解决与之相关的技术问题。解决一个技术问题x之前,可能需要先解决技术问题y。如果x和y相互依赖,则同时解决。解题将项目看作X部,技术问题看作Y部。 X部与Y部的依赖,则连有向弧(x,y)。 Y部内部yi对yj的依赖(先解决yi,才能解决yj),则连有向弧(...原创 2018-07-29 21:06:22 · 184 阅读 · 0 评论 -
HDU 3879 Base Station (最大权闭合子图)
题意现有n个基站待建。建立一个基站需要付出某个特定的代价。建好的基站之间可以相互通信。有m个工程项目,完成某个工程需要基站a与b可以相互通信,完成后获得报酬c。求最大可以获得的报酬。解题完成项目的先导条件是修建基站a,b。即所选子图的出边所指的点依然在子图中。符合闭合图定义。故此题就是求最大权闭合子图。 将工程项目作为X部,点权值为报酬c。 将基站作为Y部,点权值为修建代价(负权值...原创 2018-07-30 09:23:35 · 209 阅读 · 0 评论 -
POJ 2987 Firing (最大权闭合子图)
题意公司需要裁员。有n个员工作为被裁获选人,裁掉第i个人会获得价值w[i].但是裁掉x之前,需要先裁掉x的直属上司y。求裁掉几个人获得价值最大,最大价值是多少。解题根据题意,x与y的依赖关系,所裁掉的人一定是一个闭合子图。即图中出边所指向的点仍然在图中。 所以,这是一个最大权闭合子图问题。 建图跑一遍最大流求出最大权。 然后从源点S进行dfs,dfs能进行的次数就是闭合子图中点的...原创 2018-07-30 19:24:30 · 220 阅读 · 0 评论