网络流
信仰..
学无止境
展开
-
洛谷OJ:P2765 魔术球问题(网络流24题)
题目描述假设有n根柱子,现要按下述规则在这nn根柱子中依次放入编号为1,2,3,...的球“ 每次只能在某根柱子的最上面放球。 同一根柱子中,任何2个相邻球的编号之和为完全平方数。 试设计一个算法,计算出在n根柱子上最多能放多少个球。例如,在4根柱子上最多可放11个球。对于给定的n,计算在n根柱子上最多能放多少个球。输入格式只有一行一个整数n,代表柱子数。输出格式本题存在 Special Judge。请将n根柱子上最多能放...原创 2020-12-01 16:43:26 · 428 阅读 · 0 评论 -
洛谷OJ:P2764 最小路径覆盖问题(网络流)
题目描述给定有向图 G=(V,E)。设P是G的一个简单路(顶点不相交)的集合。如果V中每个定点恰好在P的一条路上,则称P是G的一个路径覆盖。P中路径可以从V的任何一个定点开始,长度也是任意的,特别地,可以为0。G的最小路径覆盖是G所含路径条数最少的路径覆盖。设计一个有效算法求一个 DAG (有向无环图)G的最小路径覆盖。提示:设 V={1,2,...,n},构造网络 G1={V1,E1}如下:V1={x0,x1,...,xn}∪{y0,...原创 2020-11-30 12:38:51 · 337 阅读 · 0 评论 -
洛谷OJ:P2057 [SHOI2007]善意的投票 / [JLOI2010]冠军调查(最小割)
题目描述幼儿园里有n个小朋友打算通过投票来决定睡不睡午觉。对他们来说,这个问题并不是很重要,于是他们决定发扬谦让精神。虽然每个人都有自己的主见,但是为了照顾一下自己朋友的想法,他们也可以投和自己本来意愿相反的票。我们定义一次投票的冲突数为好朋友之间发生冲突的总数加上和所有和自己本来意愿发生冲突的人数。我们的问题就是,每位小朋友应该怎样投票,才能使冲突数最小?输入格式第一行两个整数 n,m。其中n代表总人数,m代表好朋友的对数。第二行n个整数,第i 个整数代表第...原创 2020-11-26 18:44:15 · 273 阅读 · 0 评论 -
洛谷OJ:P3376 【模板】网络最大流(Ford-Fulkerson && Edmond-Karp && Dinic)
思路:回顾了下网络流中最简单暴力的一个方法:Ford-Fulkerson算法。本文不再讲解具体算法原理,直接上代码(我这里采用的邻接矩阵,希望各位不要学我,还是用邻接表比较稳哦):#include<set>#include<map>#include<queue>#include<vector>#include<string>#include<math.h>#include<stdio.h>#inc..原创 2020-11-09 22:40:51 · 401 阅读 · 0 评论 -
网络流(最大流+模板)
一、网络流的基本概念先来看一个实例。现在想将一些物资从S运抵T,必须经过一些中转站。连接中转站的是公路,每条公路都有最大运载量。如下图:每条弧代表一条公路,弧上的数表示该公路的最大运载量。最多能将多少货物从S运抵T?这是一个典型的网络流模型。为了解答此题,我们先了解网络流的有关定义和概念。若有向图G=(V,E)满足下列条件:1、 有且仅有一个顶点S,它的入度为零,即原创 2016-08-05 14:52:35 · 1008 阅读 · 0 评论 -
POJ-3281 Dining(最大流)
B - DiningTime Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %lluSubmit Status Practice POJ 3281DescriptionCows are such finicky eaters. Each cow h原创 2016-08-05 16:10:31 · 372 阅读 · 0 评论 -
最小费用最大流(讲解+模板)
问题引入:最小费用最大流问题是经济学和管理学中的一类典型问题。在一个网络中每段路径都有“容量”和“费用”两个限制的条件下,此类问题的研究试图寻找出:流量从A到B,如何选择路径、分配经过路径的流量,可以在流量最大的前提下,达到所用的费用最小的要求。如n辆卡车要运送物品,从A地到B地。由于每条路段都有不同的路费要缴纳,每条路能容纳的车的数量有限制,最小费用最大流问题指如何分配卡原创 2016-08-07 16:40:02 · 9997 阅读 · 0 评论 -
最大流(SAP算法)
求最大流有一种经典的算法,就是每次找增广路时用BFS找,保证找到的增广路是弧数最少的,也就是所谓的Edmonds-Karp算法。可以证明的是在使用最短路增广时增广过程不会超过V*E次,每次BFS的时间都是;O(E),所以Edmonds-Karp的时间复杂度就是O(V*E^2)。 如果能让每次寻找增广路的时间复杂度降低下来,那么就能够提高算法效率了,使用距离标号的最短增广原创 2016-08-08 14:48:37 · 1654 阅读 · 0 评论