
网络流
文章平均质量分 75
Coco_T_
东南大学本科毕业生,浙江大学在读研究生
展开
-
luoguP2756 飞行员配对方案问题(最大流)
很典型的二分图匹配问题外籍飞行员作为X部,英国飞行员作为Y部源点向X部连边,容量为1Y部向汇点连边,容量为1X部与Y部之间连边,容量为1狂WA不止原来是因为方案输出我这里用了一个数组记录(外籍飞行员,英国飞行员)边的编号数组默认值为0dinic之后判断边的容量是否为0注意还要判断数组中记录的编号是否有效(是否是默认值)注意bfs和dfs的时候,需要判断当前边是否还有容量......原创 2022-06-29 10:44:43 · 928 阅读 · 1 评论 -
LA3709 Hard Life(最大密度子图)
题目链接题目描述: 给定一个无向图,要求ta的一个子图,使得子图中边数|E||E||E|与点数|V||V||V|的比值最大,即最大化:|E||V||E||V||E| \over |V|分析: 看到了比值形式,可以想到01分数规划 设F(L)=|E|−L∗|V|F(L)=|E|−L∗|V|F(L)=|E|-L*|V| 如果F(L)>0,|E||V|>LF(L)>0,...原创 2018-03-15 08:50:36 · 383 阅读 · 0 评论 -
bzoj3532 [Sdoi2014]Lis(网络流退流)
Description给定序列A,序列中的每一项Ai有删除代价Bi和附加属性Ci。请删除若干项,使得A的最长上升子序列长度减少至少1,且付出的代价之和最小,并输出方案。 如果有多种方案,请输出将删去项的附加属性排序之后,字典序最小的一种。Input输入包含多组数据。 输入的第一行包含整数T,表示数据组数。接下来4*T行描述每组数据。 每组数据的第一行包含一个整数N,表示A的项...原创 2018-01-09 17:14:28 · 1325 阅读 · 0 评论 -
bzoj3158 千钧一发(最小割)
题目链接分析: 不久之前写了一道二分图匈牙利 其中提出了一条原则:正难则反,大变小,流化割于是在看这道题后立马就上手了 我们可以转换一下角度 求解:删除一些数,使得剩下的数据合法且贡献最大 显然我们删除的数之和应该取最小 这就是一个最小割的模型建图: 二分图(拆点),每个部都是n个点 源点向X部连边,Y部向汇点连边,容量就是b[i] 两个部之间,如果存在矛盾,原创 2018-01-08 20:48:14 · 1164 阅读 · 0 评论 -
bzoj1927 [Sdoi2010]星际竞速
Description 10年一度的银河系赛车大赛又要开始了。作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的梦想,来自杰森座α星的悠悠也是其中之一。赛车大赛的赛场由N颗行星和M条双向星际航路构成,其中每颗行星都有一个不同的引力值。大赛要求车手们从一颗与这N颗行星之间没有任何航路的天体出发,访问这N颗行星每颗恰好一次,首先完成这一目标的人获得胜利。由于赛制非常开放,很多人驾驶着千原创 2017-08-14 19:16:57 · 329 阅读 · 0 评论 -
欢you度yuan元旦赛(18.1.1)
T1最优图像【题目描述】 小E在好友小W的家中发现一幅神奇的图画,对此颇有兴趣。它可以被看做一个包含N×M个像素的黑白图像,为了方便起见,我们用0表示白色像素,1表示黑色像素。小E认为这幅图画暗藏玄机,因此他记录下了这幅图像中每行、每列的黑色像素数量,以回去慢慢研究其中的奥妙。 有一天,小W不慎将图画打湿,原本的图像已经很难分辨。他十分着急,于是找来小E,希望共同还原这幅图画。根据原创 2018-01-01 12:49:35 · 474 阅读 · 0 评论 -
bzoj1061 [Noi2008]志愿者招募(费用流)
Description申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要N 天才能完成,其中第i 天至少需要Ai 个人。 布布通过了解得知,一共有M 类志愿者可以招募。其中第i 类可以从第Si 天工作到第Ti 天,招募费用是每人Ci 元。新官上任三把火,为了出色地完成自己的工作,布布希望原创 2018-01-23 19:11:13 · 338 阅读 · 0 评论 -
bzoj2879 [NOI2012]美食节(费用流)
题目链接分析: 看完题面,我就想到了这道题 实际上,这道题的建图就是这样: 写完之后 —> 60 (一定要算准空间)边的数量比较多,所以如果一口气把所有的边都连上的话,时间是承受不了的由于我们跑一次spfa只能找出一次增广路,所以我们可以暂时不连不需要的边 一开始,我们把所有厨师做倒数第1道菜与所有菜连好,然后找一条增广路, 这条增广路上一定经过了一个点,表示第j个厨师做倒数第1道菜,原创 2017-12-26 19:10:39 · 295 阅读 · 0 评论 -
bzoj1070 [SCOI2007]修车(ZKW)
Description同一时刻有N位车主带着他们的爱车来到了汽车维修中心。维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的。现在需要安排这M位技术人员所维修的车及顺序,使得顾客平均等待的时间最小。 说明:顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间。Input第一行有两个m,n,表示技术人员数与顾客数。 接下来n行,每行m个整数。第i+1行第j个数表示第j位原创 2018-01-02 15:39:28 · 239 阅读 · 0 评论 -
ZKW网络流(从入门到出门)
ZKW大神的blog链接最近做了一道费用流,但是需要更高效的费用流 这就引出了ZKW发明的网络流ZKW的blog上讲的很清楚,这里我再复制一点简单介绍 我们在普通的费用流中,使用了spfa求最短路 根据最短路的性质有 (1) 对任一条边(u,v)都有dis[u]<=dis[v]+w(u,v) (2) 最短路上的边(u,v)必有dis[u]=dis[v]+w(u,v) 会发现上面原创 2018-01-02 08:39:07 · 1983 阅读 · 0 评论 -
UVa10779 - Collectors Problem(最大流)
题目链接简介:交换贴纸分析: 这也算是一个天坑了 很久之前就看过这道题,但是一直没有填美妙的建图: 我们用n-1个点表示每个除Bob之外的人 用m个点表示贴纸,从源点向这m个点连边,边的容量是Bob拥有该种贴纸的数量接下来我们要连接其他人和贴纸: 如果第i个人有超过一张j种贴纸(有k张),那么我们就连接i—>j,容量为k-1,表示ta可以贡献出k-1张第j种贴纸 如果第i个人没有第j种贴原创 2017-10-13 16:33:25 · 286 阅读 · 0 评论 -
bzoj3993 [SDOI2015]星际战争(double网络流)
题目链接分析: 这道题竟然是Round 1,我觉得我完了。。。这道题异常的刁钻:时间是double类型的 我的第一个反应就是二分答案 显然答案是具有单调性的,因此可以二分答案如果知道了攻击时间,那么每个激光输出的总伤害就可以确定了 问题就变成了类似于bzoj2756 奇怪的游戏的模型二分图, X部是机器人,Y部是激光 S向X连边,容量是ta的装甲值,Y向T连边,容量是这段时间的伤害输出原创 2018-01-09 21:13:55 · 249 阅读 · 0 评论 -
luogu2765 魔术球问题
«问题描述:假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球。(1)每次只能在某根柱子的最上面放球。(2)在同一根柱子中,任何2个相邻球的编号之和为完全平方数。试设计一个算法,计算出在n根柱子上最多能放多少个球。例如,在4 根柱子上最多可放11 个球。«编程任务:对于给定的n,计算在n根柱子上最多能放多少个球。输入输出格式输入格式:第1 行有1个正整数n,表示柱子数...原创 2018-02-08 09:58:05 · 850 阅读 · 0 评论 -
CH Round#17 舞动的夜晚(网络流+tarjan)
舞动的夜晚 CH Round #17描述 L公司和H公司举办了一次联谊晚会。晚会上,L公司的N位员工和H公司的M位员工打算进行一场交际舞。在这些领导中,一些L公司的员工和H公司的员工之间是互相认识的,这样的认识关系一共有T对。舞会上,每位员工会尝试选择一名Ta认识的对方公司的员工作为舞伴,并且每位员工至多跳一支舞。完成的交际舞的数量越多,晚会的气氛就越热烈。顾及到晚会的气氛,员工们希望知道,哪...原创 2018-03-27 09:01:01 · 447 阅读 · 0 评论 -
bzoj2597 [Wc2007]剪刀石头布(费用流)
题目链接分析: 题目要求给未知边定向,使得图中有最多个三元环一道看似和网络流完全没有关系的题,不过之前我们接触过一道图上问题用网络流解决的问题(无向边定向变欧拉路) 而这道题,我们也可以强扯到网络流上我们的原则:正难则反显然,整个图能产生的最多三元环有C(n,3)C(n,3)C(n,3)个,我们需要将不合法的子图减掉(补集法) 如果三个点无法形成环,那么ta一定长这样: ...原创 2018-03-22 17:13:20 · 227 阅读 · 0 评论 -
bzoj2400[Spoj 839] Optimal Marks(网络流)
题目链接题面描述: 定义无向图中的一条边的值为:这条边连接的两个点的值的异或值。 定义一个无向图的值为:这个无向图所有边的值的和。 给你一个有n个结点m条边的无向图。其中的一些点的值是给定的,而其余的点的值由你决定(但要求均为非负数),使得这个无向图的值最小。在无向图的值最小的前提下,使得无向图中所有点的值的和最小。分析: 看到异或,当然先想到了线性积,但是由于有不确定元素,就想到...原创 2018-03-18 19:46:59 · 216 阅读 · 0 评论 -
cogs 2047 [ZOJ2676]网络战争 (最小割+01分数规划)
★★★ 输入文件:networkwar.in 输出文件:networkwar.out 评测插件时间限制:5 s 内存限制:32 MB 【题目描述】 Byteland的网络是由n个服务器和m条光纤组成的,每条光纤连接了两个服务器并且可以双向输送信息。这个网络中有两个特殊的服务器,一个连接到了全球的网络,一个连接到了总统府,它们的编号分别是1和N。最近一家叫做Max...原创 2019-12-04 23:07:48 · 420 阅读 · 0 评论 -
bzoj3638 cf172 k-Maximum Subsequence Sum(线段树模拟费用流)
Description给一列数,要求支持操作: 1.修改某个数的值 2.读入l,r,k,询问在[l,r]内选不相交的不超过k个子段,最大的和是多少。InputThe first line contains integer n (1 ≤ n ≤ 105), showing how many numbers the sequence has. The next line contains n inte...原创 2018-03-16 15:11:26 · 288 阅读 · 0 评论 -
bzoj3272 Zgg吃东西(线段树模拟费用流)
题目链接题目大意 给定数列{an}{an}\{a_n\},要求维护以下操作和询问: 将aiaia_i赋值为valvalval 在区间[l,r][l,r][l,r]中选出最多kkk个互不相交的子段列,最大化这些选中的数的和,输出这个最大值 操作和询问共mmm个分析: 首先看一下暴力怎么解决这个问题: 把一个数拆成两个点,作为XXX部和YYY部 XXX部的点向YYY部的对...原创 2018-03-16 14:16:43 · 913 阅读 · 0 评论 -
打瞌睡hu测(2.23)
T1T2分析: 考场上我想了一个奇技淫巧,竟然过了40% 考虑一棵树,以每个点为根记录距离ta最远的叶节点的距离(dis) 找到这棵树中dis值最大的结点,暂且称这个结点为此树的重心根据贪心的想法,我们直接把重心设置为黑色 但是重心有可能存在某一子结点XXX,使得dis[X]+w(重心,X)>mdis[X]+w(重心,X)>mdis[X]+w(重心,X)>m...原创 2018-02-23 17:39:20 · 212 阅读 · 0 评论 -
打瞌睡hu测 T1.Tour(floyed+乱搞|网络流)
分析: 一开始想到了网络流 但是建不出图来,问题就在于:每个点每个边都可以经过多次,我们如果简单的把流量设为INF,按照最小割的想法无法得到最优解然而看了一下段某的代码,真的用网络流实现了: 建图: 之后直接用最小费用最大流解决即可感觉不是很科学啊。。。 一开始怎么也想不明白,这样的图怎么能跑出正确答案呢? 方便起见,我就举了一个简单的例子:example:2...原创 2018-02-23 16:21:02 · 187 阅读 · 0 评论 -
luoguP3358 最长k可重区间集问题(网络流之经典问题)
题目链接分析: 之前在网络流建图经典建模第3类中介绍过方法一按左端点排序所有区间,把每个区间拆分看做两个点Ai,BiAi,BiA_i,B_i(左右端点),建立附加源SSS汇TTT,以及附加顶点S′S′S’。连接SSS到S′S′S’一条容量为KKK,费用为0的有向边从S′S′S’到每个AiAiA_i连接一条容量为1,费用为0的有向边从每个BiBiB_i到TTT连接一条容量为1...原创 2018-03-16 10:25:34 · 640 阅读 · 0 评论 -
UVa11613 - Acme Corporation(不定流量的费用流)
题目链接简介: 生产一种产品,每个月有最大销量,销售单价,最大产量,生产成本,储存期限,储存也需要一定花费,求M个月中的最大利润分析: 把每一个月拆成两个点 x1,x2 源点向x1连边,流量是每个月的最大产量,费用是生产成本 x2向汇点连边,流量是每个月的最大销量,费用是销售价格的相反数 x1向x2连边,流量为INF,费用是0 x1向(x+1),(x+2),…,(x+e)的的二个点连边,原创 2017-10-13 10:17:36 · 585 阅读 · 0 评论 -
网络流(多样的建模)
yhzq的总结是非常好的: 网络流总结然而博主也不是一个只会复制链接的人,还是要有一点自己的感悟的网络流问题最重要的就是建模和模型转换,下面就给出一些经典模型一、最大流多源多汇问题源有多个,汇也有多个,流可以从任意源流出,最终可以流向任意汇, 总流量等于所有源流出的总流量(所有汇流入的总流量)解:加一个超级源点S,和超级汇点T, 从S向每一个源点引一条...原创 2017-10-12 11:06:07 · 2682 阅读 · 2 评论 -
bzoj3144 [Hnoi2013]切糕
Description Input 第一行是三个正整数P,Q,R,表示切糕的长P、 宽Q、高R。第二行有一个非负整数D,表示光滑性要求。接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x,y,z) (1≤x≤P, 1≤y≤Q, 1≤z≤R)。 100%的数据满足P,Q,R≤40,0≤D≤R,且给出的所有的不和谐值不超过1000。Output 仅包含一个整数,表示在合法基础上原创 2017-08-14 18:59:51 · 266 阅读 · 0 评论 -
bzoj1001 [BeiJing2006]狼抓兔子
Description现在小朋友们最喜欢的”喜羊羊与灰太狼”,话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<==>(x+1原创 2017-08-20 21:45:54 · 270 阅读 · 0 评论 -
dinic(当前最优模板)
之前写网络流dinic没有当前弧优化, 而且还会多开一个变量p(辅助bfs) 在bfs时使用stl中的queue这次的模板改变了以上的所有弊端, 全新的写法,撒花这里写代码片#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int INF=0x33333333;const int N原创 2017-07-28 14:56:51 · 782 阅读 · 0 评论 -
luogu2764 最小路径覆盖问题
«问题描述:给定有向图G=(V,E)。设P 是G 的一个简单路(顶点不相交)的集合。如果V 中每个顶点恰好在P 的一条路上,则称P是G 的一个路径覆盖。P 中路径可以从V 的任何一个顶点开始,长度也是任意的,特别地,可以为0。G 的最小路径覆盖是G 的所含路径条数最少的路径覆盖。设计一个有效算法求一个有向无环图G 的最小路径覆盖。提示:设V={1,2,…. ,n},构造网络G1=(V1,E1)如下:原创 2017-06-11 19:58:07 · 320 阅读 · 0 评论 -
集训D3T3
【问题描述】 小火车的 ddl 赶不完了, 他不愿意也没时间去思考题目背景到底应该怎么写了。 有一张 n 个点 m 条边的有向无环图,k 个人同时想从1号点走到 n号点,每个人每个时刻都会沿着一条边走过去,不能不走(除非他们已经到达了n号点),不过每条边每个时刻都只能有一个人经过,请问他们中最晚的人最早什么时候能到 n号点呢?如果不可能的话输出-1。 【输入格式】 第一行三个整数n,m,k,原创 2017-06-18 21:17:11 · 955 阅读 · 0 评论 -
棋盘 (省队集训 网(du)络(liu)流(ti))
给定一个 n * n 的棋盘,棋盘上每个位置要么为空要么为障碍。定义 棋盘上两个位置 (x,y)和(u, v) 能互相攻击当前仅当满足以下两个条件: • x = u 或 y = v • 对于 (x; y) 与 (u; v) 之间的所有位置,均不是障碍。 现在有 q 个询问,每个询问给定 ki,要求从棋盘中选出 ki 个空位置来放棋子,问最少互相能攻击到的棋子对数是多少?输入格式 第一行一原创 2017-06-02 20:24:43 · 366 阅读 · 0 评论 -
luoguP3381 【模板】最小费用最大流
题目描述如题,给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。输入输出格式输入格式: 第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来M行每行包含四个正整数ui、vi、wi、fi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi),单位流量的费用为fi。输出格式原创 2017-04-06 08:00:40 · 286 阅读 · 0 评论 -
luoguP1402 酒店之王(网络流)
XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化。由于很多来住店的旅客有自己喜好的房间色调、阳光等,也有自己所爱的菜,但是该酒店只有p间房间,一天只有固定的q道不同的菜。有一天来了n个客人,每个客人说出了自己喜欢哪些房间,喜欢哪道菜。但是很不幸,可能做不到让所有顾客满意(满意的条件是住进喜欢的房间,吃到喜欢的菜)。这里要怎么分配,能使最多顾客满意呢?输入输出格式输入格式: 第一原创 2017-04-05 20:25:34 · 703 阅读 · 0 评论 -
bzoj2756 [SCOI2012]奇怪的游戏
DescriptionBlinker最近喜欢上一个奇怪的游戏。 这个游戏在一个 N*M 的棋盘上玩,每个格子有一个数。每次 Blinker 会选择两个相邻的格子,并使这两个数都加上 1。 现在 Blinker 想知道最少多少次能使棋盘上的数都变成同一个数,如果永远不能变成同一个数则输出-1。 Input输入的第一行是一个整数T,表示输入数据有T轮游戏组成。 每轮游戏的第一行有两个整数N和原创 2017-08-15 17:07:54 · 291 阅读 · 0 评论 -
poj1637 Sightseeing tour
Description The city executive board in Lund wants to construct a sightseeing tour by bus in Lund, so that tourists can see every corner of the beautiful city. They want to construct the tour so that原创 2017-08-15 19:15:32 · 296 阅读 · 0 评论 -
bzoj2668 [cqoi2012]交换棋子
Description有一个n行m列的黑白棋盘,你每次可以交换两个相邻格子(相邻是指有公共边或公共顶点)中的棋子,最终达到目标状态。要求第i行第j列的格子只能参与mi,j次交换。Input 第一行包含两个整数n,m(1<=n, m<=20)。以下n行为初始状态,每行为一个包含m个字符的01串,其中0表示黑色棋子,1表示白色棋子。以下n行为目标状态,格式同初始状态。以下n行每行为一个包含m个0~9数原创 2017-09-09 08:40:13 · 319 阅读 · 0 评论 -
无源汇有上下界可行流(网络流进阶)
无源汇有上下界可行流(也就是循环流)模型:一个网络,求出一个流,使得每条边的流量必须>=Li且<=Hi, 每个点必须满足总流入量=总流出量(流量守恒)(这个流的特点是循环往复,无始无终)可行流算法的核心是将一个不满足流量守恒的初始流调整成满足流量守恒的流流量守恒,即每个点的总流入量=总流出量如果存在一个可行流,那么一定满足每条边的流量都大于等于流量的下限 因此我们可以令每条边的流量等于流量下限,原创 2017-06-16 07:47:12 · 6647 阅读 · 7 评论 -
poj3686The Windy's(费用流)
Description The Windy’s is a world famous toy factory that owns M top-class workshop to make toys. This year the manager receives N orders for toys. The manager knows that every order will take differ原创 2017-10-01 08:11:39 · 410 阅读 · 0 评论 -
UVa10806 - Dijkstra, Dijkstra.(费用流)
题目链接简介: 给出一个有n个节点,m条边的带权无向图,找到起点S到终点T的最短往返路线不能重复走同一条边简介: 这道题很像dijkstra求最短路和次短路 但是求解最短路次短路的时候,我们贯彻的是一种贪心思想,并且可以走重边 如果只是简单地把最短路上的边删除,再跑一边最短路,是会出错的 因此这道题就带有一点dp的味道了既像贪心,又像dp:网络流这道题的建图很简单, 因为我们要找出最短的原创 2017-10-28 07:56:41 · 341 阅读 · 0 评论 -
UVa11082 - Matrix Decompressing(最大流)
题目链接简介: 给出A[i]表示矩阵前i行的元素和 B[i]表示矩阵前i列的元素和 求原始矩阵分析: 首先我们把A,B数组变成每一行(每一列)的元素和 显然(i,j)既会被计算在A[i]内,又会被计算在B[j]内 这就提示我们把每一行,每一列看做一个点 行点看做是X部,列点看做是Y部在第i行和第j行之间连边,表示一个点 原点向X部连边,Y部向汇点连边这道题的容量有一点讲究: 因为题...原创 2017-10-27 21:59:13 · 289 阅读 · 0 评论 -
poj2195 Going Home(费用流|KM)
Description On a grid map there are n little men and n houses. In each unit time, every little man can move one unit step, either horizontally, or vertically, to an adjacent point. For each little man原创 2017-10-01 15:29:29 · 567 阅读 · 0 评论