网络流
loveicecola
AFO
展开
-
[FJOJ190]网络流+二分答案
FZOJ190题目描述神仙题,自闭场不要在意。了解了算法的思路,来写一下博客。(也就当是练一下板子233)做这道题大概是这样一个思路过程:是在1~n的所有路径上,选择不超过k个点,点的权值变成1,使得最短路最大,求最大值。一般情况下,使最小值最大或者使最大值最小这种问题都是先二分答案。我们二分一个mid作为答案,那么从1到n一共走了mid步。考虑怎么判断是否有可行解。首先应该考...原创 2019-03-14 15:03:04 · 309 阅读 · 0 评论 -
[P3355骑士共存]
P3355方格里面选若干个点放上骑士,骑士之间不能互相攻击到。问最多能放多少骑士。emm。可能是被费用流整自闭了,还以为这道题也是个神题,在想怎么用费用流跑。看了一下自己之前居然写过这道题,代码居然是匈牙利??好,再看一下题目。等等,最多放多少骑士,使得两两之间不冲突,那不就是最大独立集吗?对于任意一个点,如果没有障碍,把它所能攻击到的点都向它连一条边。可以证明,这样建的图一定是没有奇环...原创 2019-03-27 17:00:02 · 149 阅读 · 0 评论 -
[P1251餐巾计划问题]
luogu1251费用流是如此地令人自闭每天需要nin_ini个干净的餐巾。它有三种来源,购买、之前的脏餐巾慢洗、快洗。三种花费均不相同。慢洗与快洗是使用过之后a,ba,ba,b天后才可以使用。为了保证每天一定有nin_ini个干净餐巾来使用,我们从sss向iii连一条容量为nin_ini,代价为fff的边,同时从iii向ttt连一条容量为nin_ini,代价为000的边。但是这只...原创 2019-03-26 20:56:27 · 153 阅读 · 0 评论 -
可行割边与关键割边
引入我们当前有一个张网络流图G=(V,E)G = (V, E)G=(V,E),这个图中存在关键割边与可行割边。关键割边:在任意一个最小割集中总是存在的边。可行割边:存在一个最小割集使得这条边属于这个割集。可行割边的判定首先我们要注意到,不管一条是可行割边还是关键割边,其在残余网络上都应该是只存在反向弧,即满流。如果一条割边(u,v)(u, v)(u,v) 是可行割边,那么就意为着如...原创 2019-03-23 16:10:59 · 339 阅读 · 0 评论 -
最大密度子图
定义 ~~~~ 一张无向图G=(V,E)G=(V,E)G=(V,E)的最大密度子图定义为该无向图的一个子图G0=(V0ϵV,E0ϵE)G_0=(V_0\epsilon V,E_0\epsilon E )G0=(V0ϵV,E0ϵE),满足该图的∣E0∣∣V0 ∣\frac{|E_0|}{| ...原创 2019-03-23 15:42:38 · 454 阅读 · 0 评论 -
[bzoj2127]happiness
这题学长说可以转化为最大权闭合子图,然鹅我当时没有听懂。看了题解,大家有的在列方程搞事情,我也不是很懂。有一篇博客给了一张图,我拿着图搞了搞,好像会了一种算法。(不算是自己想出来的吧,图已经给了大致思路,只能说细节是自己实现的)。先来盗一下图。这个图好nb,看懂这张图这题基本就做完了。我们要给每个人选一个科目,让总的价值最大。这类问题如何用网络流解呢?还是从简入手,我们先考虑只有两个人的情...原创 2019-03-23 15:10:49 · 226 阅读 · 0 评论 -
[NOI2006最大获利]
最大权闭合子图模板题,美滋滋。闭合子图定义一张有向图的闭合子图G0G_0G0,那么对于子图中的任意一个节点vvv都没有一条连出子图外节点的边。最大权闭合子图我们给有向图中的每个点uuu赋一个可正可负的权值wiw_iwi,那么一个有向图的最大权闭合子图就是满足∑wi\sum_{w_i}∑wi最大的G0G_0G0。解决方法建立超级源点向所有正权值的点连容量为点权的边。...原创 2019-03-23 07:53:46 · 215 阅读 · 0 评论 -
[WF2011] Chips Challenge
Solution Coding#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#define ll long longusing namespace std;const int N=1e3+10;...原创 2019-03-26 10:40:22 · 744 阅读 · 0 评论 -
有向无环图的最小路径点覆盖
不可相交 ~~~~ 给定一个DAGDAGDAG,要求用尽量少的不相交的简单路径,覆盖DAGDAGDAG的所有顶点(每个顶点恰好被覆盖一次)。设原来的有向无环图为G=(V,E),n=∣V∣G=(V,E),n=|V|G=(V,E),n=∣V∣。把GGG中的每一个点拆成入点和出点,建立一张新的二分图,111...原创 2019-03-25 21:39:41 · 635 阅读 · 0 评论 -
[luogu4897]最小割树 Gomory-Hu Tree
luogu P4897和分治最小割那道题一样,多了一个建图的过程。建出的图一定是一颗点数为nnn的树。查询直接dfsdfsdfs,复杂度5e75e75e7,开O2O2O2过了qwq。其实可以写一下倍增,懒。Coding#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=...原创 2019-03-25 20:13:20 · 493 阅读 · 0 评论 -
[CQOI2016]不同的最小割
前置芝士:最小割树 ~~~ 对于一张带权无向联通图 G=(V,E)G = (V, E)G=(V,E) 来说,我们定义 f(u,v)f(u, v)f(u,v) 表示 u,vu, vu,v 之间的最小割的大小。可以证明存在一颗 ∣V∣|V|∣V∣ 个节点的树,令 g(u,v)g(u, v)g(u,v) 表示树上 u→vu → vu→...原创 2019-03-25 17:14:00 · 246 阅读 · 0 评论 -
[BZOJ4657]炮塔
BZOJ4657这道题学长说比切糕简单,但是自我感觉,切糕就是个套路吧。这个建图有些恶心啊,并且需要思路转化。(其实是我思路江化太严重了)。我们再描述一下问题,某个位置有一个炮塔,这个炮塔有一个方向。在这个方向上的所有点它可以任意选一个杀掉里面的敌人,但是每个炮塔攻击所覆盖的路径两两不能相交。求最大值。我们上回写切糕的时候,见过了这类题目。选了某一个点之后,另一个相邻点的选择会受到限制。...原创 2019-03-18 20:00:27 · 255 阅读 · 0 评论 -
[HAOI2017]新型城市化 二分图+网络流+关键边
HAOI2017emm。一道模板题,本来想着30分钟写完,一点半赶紧开始打比赛……没想到,看题目理解题意花了20分钟,敲了10分钟。比赛完之后,写了30分钟吧,交上去果断0分。晚上调整思路之后,又写了一遍,仍然是0分。在神犇帮助下,找到了自己的错误:用网络流跑最大匹配,建的边都是有向边!Solution题目给定mmm对点对,这mmm对点对互相之间没有连边。其他的点互相之间都有边,问:...原创 2019-03-24 21:23:57 · 165 阅读 · 0 评论 -
[BZOJ3144]切糕
题目描述哎,这又是网络流?自闭了。先考虑只有一个限制条件的情况,求最小收益,转化到求最小割上面。这张图相当于我们把题中的n*m条链抽出来两条,考虑如何通过巧妙地建图,实现对条件的限制。假如我们有这样一个限制:如果选择了2号点,那么只能选择8~10号点。选择一个点,在图中对应割掉一条边。最小收益我们已经转化为求最小割,考虑增加什么样的边,可以使新图跑最小割的过程中同时满足限制。如果,从...原创 2019-03-16 15:46:18 · 154 阅读 · 0 评论 -
[SPOJ839]最优符号
题目描述有点懵……这和最小割有关系?而且这题暴力也不好写吧……总不能一个一个枚举权值吧。考虑如果点的权值只有1和0的情况。如果一个点到另一个点之间有一条路径,并且它们已经确定一个为1,一个为0,那么这条路径上的点你不管如何赋值,都至少会产生1的代价。那么我们想要达到最小值,应该是考虑如何选择,所有从权值为1的节点到权值为0的节点路径上的点的权值,让每条路径产生的代价尽可能小。一条路径为了...原创 2019-03-16 08:12:08 · 182 阅读 · 0 评论 -
[ZOJ2676]最小割+01分数规划
题目描述分析看完题目居然没什么思路,菜的真实233哎这显然是一个01分数规划吧首先。什么?你不会01分数规划?好吧我也不太会了,我们来回顾一下。对于题目的这个式子,我们转化为更一般的:∑i=1nwi∗xi∑i=1nxi\frac{\sum_{i=1}^nw_i*x_i}{\sum_{i=1}^nx_i}∑i=1nxi∑i=1nwi∗xi,其中xix_ixi为0或1,我们让...原创 2019-03-15 21:20:18 · 110 阅读 · 0 评论 -
费用流
POJ 3422K格取数问题算是费用流的一个模板题,同时也巩固了上节学习的拆点套路。为了保证每个数的权值只被计算一次,并且可以走K条路,我们需要用到拆点。每一个点拆成一个出点和入点,出点到入点建一条容量为1,权值为a(i,j)的边,再建一条容量为k-1,权值为0的边,这样就保证了一个点的权值最多被计算一次。对于每个出点,只需要向它右边和下放的两个点分别连一条容量为k权值为0的边即可。...原创 2019-03-14 15:05:25 · 4440 阅读 · 0 评论 -
[P2764最小路径覆盖问题]
模板题不多说,因为是以前写的代码,所以可能比较young。// luogu-judger-enable-o2#include<bits/stdc++.h>using namespace std;int ans=0,len=0,lin[500],din[50000],dout[50000],level[500],x,y,S,T,n,m,q[500];int q1[500],...原创 2019-03-27 17:02:26 · 128 阅读 · 0 评论