网络流
ws_yzy
一如OI情似海
展开
-
1391: [Ceoi2008]order|网络流
裸的最大权闭合图注意要用当前弧优化不然会T的#include#include#include#include#include#include#include#include#include#include#define T 3330003#define ll long longusing namespace std;int sc(){ int i=原创 2016-01-16 10:09:11 · 655 阅读 · 0 评论 -
3876: [Ahoi2014]支线剧情|有上下界的费用流
建立超级源点SS和超级汇点TT 对于原图的每条边(i,j)(i,j) 连边:S−>jS->j 费用为vv,流量为11i−>ji->j 费用为vv,流量为无穷i−>Ti->T 费用为00,流量为11跑最小费用最大流就是答案!#include<algorithm>#include<iostream>#include<cstring>#include<cstdlib>#include<原创 2016-03-01 21:24:32 · 1030 阅读 · 0 评论 -
2324: [ZJOI2011]营救皮卡丘|有上下界的费用流
果然强省的省选就是有深度. 黄学长题解传送门 这个题似乎普通的费用流会比zkw费用流快#include<algorithm>#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<vector>#include<queue>#include<cmath>#include<set>#原创 2016-03-02 09:12:56 · 737 阅读 · 0 评论 -
BZOJ 2400: Spoj 839 Optimal Marks|最小割
bzoj评测姬已经被群攻了.. 可以发现每一位都是独立的 然后枚举每一位,每一个点要么是1要么是0 然后可以划分为两个集合,0集合和1集合,只有连接两个集合的边才会对答案有贡献,然后跑最小割就可以了 建图: 枚举每一位S连这一位上是1的点,流量inf这一位上是0的点连T,流量inf再加上原图中的边,流量为1这样跑出来的最小割就是这一位对答案1的贡献 然后再看属于S集的点的个数就是原创 2016-02-17 18:34:03 · 567 阅读 · 0 评论 -
2245: [SDOI2011]工作安排|费用流
裸的费用流。。由于某SB错误RE+WA了一早晨。。。给小号挂了一板真是舒爽 源点每个人连Si+1S_{i}+1条边,人向能加工的产品连边,产品向汇点连边#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<vector>#include<cstdio>#include<queue>原创 2016-03-17 08:38:34 · 486 阅读 · 1 评论 -
1570: [JSOI2008]Blue Mary的旅行|网络流
据说这题的思路挺正常,然而直接没有向拆点的方面想QAQ 然而每天只能走一班飞机所以显然要拆点,把每个点拆成MM个点,MM是天数的上界,极限情况应该是n+Tn+T 因为要求的是最少的天数可以动态加边一直跑网络流,对于原图中的边(u,v)(u,v)连一条从今天的uu走到明天的vv的边,还要把前一天的点和后一天的点都连一遍边,然后跑网络流看当前流量是否≥T\geq T#include<iostream原创 2016-03-18 20:40:58 · 1001 阅读 · 0 评论 -
2696: 航班安排|费用流
首先我的吐槽一下这题意描述。。出题人的语文水平肯定没我这种语文大渣高 然后我们就直接复制某位不知名的fqk神犇的题解 说的这么详细我都不忍心不复制了QAQ 建完图直接跑最小费用最大流#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<queue>#include<vector>#in原创 2016-03-10 20:52:27 · 824 阅读 · 1 评论 -
1283: 序列|最大费用流
题意描述中似乎掉了个mm 费用流可以这样想,可以进行KK次选择,每次都不会在同一个长度为mm的子串中选择的数超过一个 这样就可以构造最大费用最大流的模型 (i−1)−>i(i-1)->i流量为KK费用为00 i−>i+mi->i+m流量为11费用为CiC_{i} 然后跑最大费用最大流就是答案#include<cstdio>#include<cstdlib>#include<原创 2016-03-11 08:12:40 · 518 阅读 · 1 评论 -
4177: Mike的农场|最小割
最小割模型,养牛养羊可以想到跑完网络流后这个点属于S集或者T集。 然后按照这个思路就很容易建图。源点连围栏,流量为养牛的收入,围栏连汇点流量为养羊的收入,然后养不同动物会造成额外损失的两个围栏连双向边流量为kk,这样可以保证假如两个围栏中养了不同的动物(跑完网络流分别属于SS集和TT集)那么这条边肯定被割断。 然后处理那K条规则,每个规则都新建一个点,如果a=0a=0,则源点连新建的点流量为bb原创 2016-03-14 14:39:59 · 565 阅读 · 0 评论 -
3996: [TJOI2015]线性代数|最小割
只有当AiA_{i}和AjA_{j}都为11时才会获得Bi,jB_{i,j}的价值,在AiA_{i}为11的时候同时又会损失CiC_{i}的价值。 经典最小割模型#include<set>#include<map>#include<ctime>#include<queue>#include<cmath>#include<cstdio>#include<vector>#include<原创 2016-03-15 07:40:22 · 520 阅读 · 0 评论 -
2055: 80人环游世界|有上下界的费用流
做上下界网络流的题姿势水平还有待提高啊~ 把每个国家拆成两个点Ai1,Ai2A_{i1},A_{i2},限制这两个点之间的流量,让其上下界都为ViV_{i} 先建立超级源点SS和超级汇点TT Ai1−>TA_{i1}->T,S−>Ai2S->A_{i2}流量都为ViV_{i}费用为零 在建立一个点s−>Ai1s->A_{i1}流量为无穷费用为零 S−>sS->s流量为mm费用为零 对于原创 2016-03-01 19:55:30 · 420 阅读 · 0 评论 -
BZOJ 3698: XWW的难题|有上下界的网络流之最大流
先构建可行流的模型 s−>s->每一行 流量为(a[i][n],a[i][n]+1)(a[i][n],a[i][n]+1) 每一列−>t->t 流量为(a[n][i],a[n][i]+1)(a[n][i],a[n][i]+1) 每一行−>->每一列 流量为(a[i][j],a[i][j]+1)(a[i][j],a[i][j]+1) 加入超级源点和超级汇点S,TS,T判断是否存在可行流 若可原创 2016-03-01 16:39:14 · 2721 阅读 · 0 评论 -
2502: 清理雪道|有上下界的网络流之最小流
第一次写最小流真的有点方.. 先膜一发Oxer神犇的二分答案做法传送门#include<algorithm>#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<cmath>#include<queue>#include<set>#include<m原创 2016-03-01 10:42:45 · 463 阅读 · 0 评论 -
BZOJ 3275: Number|网络流
网络流奇偶分组 排斥的连边保证不同时选具体:S->奇数 流量为奇数大小偶数->T 流量为偶数大小奇偶若有排斥 奇数->偶数 流量为无穷大求一个最小割,最后割断了哪个边,那个边上的数就不选#include#include#include#include#include#include#include#include#include#inc原创 2016-01-17 16:07:09 · 408 阅读 · 0 评论 -
BZOJ 1532: [POI2005]Kos-Dicing|网络流
二分答案网络流#include#include#include#include#include#include#include#include#include#include#include#define inf 1e9using namespace std;int sc(){ int i=0; char c=getchar(); while(c>'9'||c<原创 2016-01-17 17:19:35 · 725 阅读 · 0 评论 -
BZOJ 1449/2895: [JSOI2009]球队收益|网络流
好流弊的一道网络流题啊,涨姿势 首先假设让参加比赛的两个队都输 然后调整每场比赛赢的队伍来获得最小答案 这不就是最小费用流吗! S连每场比赛流量1费用0 每场比赛连参赛队流量1费用0 关键就是 参赛队连T 需要连参赛次数条边 我们发现调整一次 由win,lose变为 win+1,lose-1的费用为 (C*(win+1)^2+D*(lose-1)^2) - (C*win^2+D*l原创 2016-01-20 21:29:17 · 508 阅读 · 0 评论 -
BZOJ 2424: [HAOI2010]订货|费用流
真是良心题,一开始想拆点,后来发现完全不用拆点 对于第x个月,要连以下边: 1. S->x 流量无穷大,费用为dx 2. x->T 流量为Ux,费用为0 3. x->x+1 流量为仓库容量(S被我用来当源点了),费用为m code:#include<set>#include<map>#include<ctime>#include<queue>#include<cmat原创 2016-01-20 15:33:39 · 668 阅读 · 0 评论 -
BZOJ 2597: [Wc2007]剪刀石头布|费用流
神题吓死人- -!费用流神题!!! n个点考虑最多有C(n,3)个题意中描述的3元环 考虑每个人赢的次数 赢一次对这种3圆环的破坏个数为0,两次为1,三次再加2,四次再加3…… ans=C(n,3)-破坏个数 显然要让破坏个数最少,那就是费用流的模型了 原图中的每条边抽象为点 S连每条边流量为1费用0 每条边若胜负不定(2) 连两个人流量为1费用为0 若胜负确定(0,1)连胜利的人原创 2016-01-21 08:54:04 · 667 阅读 · 0 评论 -
BZOJ 1221: [HNOI2001] 软件开发|费用流
把每天分为二分图两个集合中的顶点Xi,Yi,建立附加源S汇T。1、从S向每个Xi连一条容量为ri,费用为0的有向边。2、从每个Yi向T连一条容量为ri,费用为0的有向边。3、从S向每个Yi连一条容量为无穷大,费用为p的有向边。4、从每个Xi向Xi+1(i+1<=N)连一条容量为无穷大,费用为0的有向边。5、从每个Xi向Yi+m+1(i+m+1<=N)连一条容量为无穷大,费用为f的有向边。6、从原创 2016-01-09 14:09:49 · 1052 阅读 · 1 评论 -
codevs1907 方格取数 3||tyvj1338QQ农场|网络流
自己做出来的第一道最小割的题 我是不是太弱了QAQ题解:把矛盾的点分为两排然后随便连连边就好了#include#include#include#include#include#include#include#include#include#include#define T 400040#define mx 122222222using namespace原创 2016-01-09 19:53:16 · 668 阅读 · 0 评论 -
BZOJ 1189: [HNOI2007]紧急疏散evacuate|网络流|二分答案
S连“。”流量为1二分答案 x算出每一个门到每一个点的距离若小于x连边 流量为1门连T 流量为 x其实这个题完全不用拆点因为门限制的流量为x 若有x个点和门的dis每个点到门的距离肯定而且dis=x的点最多有一个#include#include#include#include#include#include#include#include#i原创 2016-01-11 19:00:16 · 822 阅读 · 1 评论 -
BZOJ 3504: [Cqoi2014]危桥|网络流
judge两次1:S连a1 b1;a2 b2 连T2:S连a1 b2;a2 b1 连T窝用的是矩阵存的边……#include#include#include#include#include#include#include#include#include#include#define T 99999using namespace std;int v[55][5原创 2016-01-12 09:23:51 · 402 阅读 · 0 评论 -
4514: [Sdoi2016]数字配对|费用流
这道题只要看出是个二分图就可以直接费用流搞一搞了#include<algorithm>#include<iostream>#include<complex>#include<cstdlib>#include<cstring>#include<cstdio>#include<vector>#include<cmath>#include<queue>#include<ctime>#i原创 2016-04-15 08:27:39 · 1316 阅读 · 0 评论