最大流
文章平均质量分 54
SC.ldxcaicai
我很菜=_=
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BZOJ4443: [Scoi2015]小凸玩矩阵(二分加二分图匹配)
4443: [Scoi2015]小凸玩矩阵 Time Limit: 10 Sec Memory Limit: 128 MB Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或同一列,现小凸想知道选出来的N个数中第K大的数字的最小值是多少。 Input 第一行给出三个整数N,M,K 接下来...原创 2018-06-30 23:43:58 · 248 阅读 · 0 评论 -
2018.10.11 NOIP训练 没有上司的舞会(最长反链)
传送门 最长反链板题。 直接floyd传递闭包之后求匹配就行了。 代码: #include<bits/stdc++.h> #define N 505 #define M 100005 #define inf 0x3f3f3f3f using namespace std; int n,m,s,t,cnt=0,first[N],d[N]; bool mp[N][N]; struct No...原创 2018-10-11 16:20:33 · 215 阅读 · 0 评论 -
2018.09.27 codeforces1045A. Last chance(线段树优化建图+最大流)
传送门 看完题应该都知道是网络流了吧。 但是第二种武器直接建图会gg。 因此我们用线段树优化建图。 具体操作就是,对于这m个人先建一棵线段树,父亲向儿子连容量为inf的边,最后叶子结点向对应的人连容量为1的边。 这样给第二种武器对应连边的时候直接给区间连边就行了。 对于操作三,我们直接贪心流掉两个人,剩下的一个人不流就行了。 代码: #include<bits/stdc++.h> #d...原创 2018-09-27 14:10:34 · 566 阅读 · 0 评论 -
2018.10.13 bzo1934: [Shoi2007]Vote 善意的投票(最小割)
传送门 最小割定义题。 按照题意建边就行了。 考虑把冲突变成把aaa选入不与自己匹配的集合所需要付出的代价。 然后跑最小割就行了。 代码: #include<bits/stdc++.h> #define N 305 #define M 180005 using namespace std; inline int read(){ int ans=0; char ch=getchar...原创 2018-10-13 13:32:58 · 131 阅读 · 0 评论 -
2018.10.13 bzoj1834: [ZJOI2010]network 网络扩容(最大流+费用流)
传送门 网络流水题啊。 第一问直接放心跑最大流(本来还以为有什么tricktricktrick)。 第二问就直接把原来的边(u,v,c,w)(u,v,c,w)(u,v,c,w)变成(u,v,c,0)(u,v,c,0)(u,v,c,0)和(u,v,inf,w)(u,v,inf,w)(u,v,inf,w),然后把ttt拆点限制流量跑费用流就行了。 代码: #include<bits/stdc+...原创 2018-10-13 23:37:54 · 126 阅读 · 0 评论 -
2018.10.14 loj#6003. 「网络流 24 题」魔术球(最大流)
传送门 网络流好题。 这道题可以动态建图。 不难想到把每个球iii都拆点成i1i_1i1和i2i_2i2,每次连边(s,i1),(i2,t)(s,i_1),(i_2,t)(s,i1),(i2,t),如果(u,v)(u,v)(u,v)可以匹配的话就连边(u1,v2)(u_1,v_2)(u1,v2),然后用最大流检验,如果能流动说明不用加柱子,否则需要新加一个柱子。 题目还要求输出方案。...原创 2018-10-14 15:18:23 · 194 阅读 · 0 评论 -
2018.10.10 poj1149 PIGS(最大流)
传送门 最大流好题。 每次处理完之后相当于合并几个猪圈到一个新点上。 对于每个猪圈iii记录一个lastilast_ilasti表示iii最新一次处理完之后到的新点。 这时如果一个人jjj允许去猪圈iii只需要跟lastilast_ilasti连边就行了。 代码(空间瞎开的): #include<iostream> #include<cstdio> #include&...原创 2018-10-10 14:59:24 · 117 阅读 · 0 评论 -
2018.10.10 loj#6002. 「网络流 24 题」最小路径覆盖(最大流)
传送门 一道求最小路径覆盖的板子题。 可以转化为求二分图的最大匹配。 如何转化呢? 在没有边的时候显然最小路径覆盖数等于点数。 假设当前加入一条边(u,v)(u,v)(u,v)。 相当于匹配了两条路径,于是假设现在匹配了kkk次,那么只需要n−kn-kn−k条路径。 代码: #include<bits/stdc++.h> #define N 505 #define M 20005 u...原创 2018-10-10 16:00:09 · 231 阅读 · 0 评论 -
2018.10.10 bzoj3144: [Hnoi2013]切糕(最小割)
传送门 网络流好题。 首先考虑没有限制的情况。 这个时候每个位置求解是独立的。 其实可以直接贪心求最小值。 但也可以用最小割来求。 大概建图就是这样的: 考虑加入限制,那么直接暴力枚举给两个不能同时选的节点连一条容量为infinfinf的边就行了。 这样需要付出infinfinf的代价才能让这两个节点同时被选。 代码: #include<bits/stdc++.h> using n...原创 2018-10-10 19:16:04 · 315 阅读 · 0 评论 -
2018.10.10 bzoj1565: [NOI2009]植物大战僵尸(最大权闭合子图+拓扑排序)
传送门 由题可以得出一些关系。 如果对于同一行的相邻两个格子(i,j),(i,j+1)(i,j),(i,j+1)(i,j),(i,j+1),那么前者是后者的后继。 如果对于两个格子A(a,b),B(c,d)A(a,b),B(c,d)A(a,b),B(c,d),如果AAA保护BBB,那么BBB是AAA的后继。 然后可以发现如果以这样的方式建图会产生环。 并且由条件知整个环都不能选。 因此我们先在...原创 2018-10-10 20:40:58 · 197 阅读 · 0 评论 -
2018.10.10 poj3014 Asteroids(最小点覆盖)
传送门 最小点覆盖板子题。 直接把行列都看作一排点,有障碍就连边,然后跑最小点覆盖就行了。 代码: #include<queue> #include<cstring> #include<iostream> #include<cstdio> #define N 10005 using namespace std; inline int read(){...原创 2018-10-10 20:59:04 · 201 阅读 · 0 评论 -
2018.10.10 bzoj1497: [NOI2006]最大获利(最大权闭合子图)
传送门 最大权闭合子图入门题。 把点的花费看成负权值,跟汇点连边:(i,pi)(i,p_i)(i,pi)=>(i,t,pi)(i,t,p_i)(i,t,pi) 对于边(u,v,w)(u,v,w)(u,v,w),连(s,newnode,w),(newnode,u,inf),(newnode,v,inf)(s,newnode,w),(newnode,u,inf),(newnode,v,in...原创 2018-10-10 22:03:41 · 327 阅读 · 0 评论 -
2018.11.06 NOIP训练 最大获利(profit)(01分数规划+最大权闭合子图)
传送门 好题啊。 ∑i&lt;jpi,jK∗(200−K)&gt;X\frac{\sum_{i&lt;j}p_{i,j}}{K*(200-K)}&gt;XK∗(200−K)∑i<jpi,j>X =>∑i&lt;jpi,j−XK(200−K)&gt;0\sum_{i&lt;j}p_{i,j}-XK(200-K)&...原创 2018-11-06 12:02:29 · 251 阅读 · 0 评论 -
bzoj2127: happiness(最小割)
传送门 按题意建个图跑最大流-最小割算法 以上纯属扯淡。 按如下方式建图(借用黄学长的blog): s->A:cost[A文]+c[文][A][B]/2,s->B:cost[B文]+c[文][A][B]/2; A->t:cost[A理]+c[理][A][B]/2,B->t:costB[理]+c[理][A][B]/2; A<–>B:c[文][A][B]/2+c[理...原创 2019-06-26 17:18:29 · 190 阅读 · 0 评论 -
2018.10.11 bzoj1391: [Ceoi2008]order(最小割)
传送门 最小割入门题。 注意直接memsetmemsetmemset时间会爆炸。 代码: #include<bits/stdc++.h> #define N 5005 using namespace std; const int M=1200*1200*3; inline int read() { char ch=getchar(); int i=0; while(!isdigi...原创 2018-10-11 16:13:55 · 167 阅读 · 0 评论 -
2018.10.11 bzoj3894: 文理分科(最小割)
传送门 最小割经典题目。 题目让我们求最大的贡献。 那我们先考虑加上全部的贡献,然后求出最小的需要丢掉的贡献。 那么这个时候,如果没有限制就已经是最小割的典型模型了。 即直接建边(s,posi,j,arti,j),(posi,j,t,arti,j)(s,pos_{i,j},art_{i,j}),(pos_{i,j},t,art_{i,j})(s,posi,j,arti,j),(posi,j...原创 2018-10-11 14:36:17 · 243 阅读 · 0 评论 -
2018.10.11 bzoj1458: 士兵占领(最大流)
传送门 最大流简单题。 正向做不是很好做。 考虑反过来求出最多可以删去几个点。 这时可以定义行列每匹配一个表示删去了一个点。 然后利用原题的限制定义容量就可以了。 代码: #include<bits/stdc++.h> #define N 205 #define M 200005 using namespace std; inline int read(){ int ans=0; ...原创 2018-10-11 11:24:38 · 199 阅读 · 0 评论 -
POJ3281 Dining(最大流)
Dining Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 21578 Accepted: 9545 Description Cows are such finicky eaters. Each cow has a preference for certain foods and drinks,...原创 2018-06-27 13:48:07 · 171 阅读 · 0 评论 -
Dual Core CPU(最小割)
Dual Core CPU Time Limit: 15000MS Memory Limit: 131072K Total Submissions: 26136 Accepted: 11270 Case Time Limit: 5000MS Description As more and more computers are equipped with dual c...原创 2018-06-27 14:19:38 · 1132 阅读 · 0 评论 -
Firing(最大权闭合子图)
Firing Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 11558 Accepted: 3494 Description You’ve finally got mad at “the world’s most stupid” employees of yours and decided t...原创 2018-06-27 15:25:08 · 250 阅读 · 0 评论 -
2018.07.06 POJ1273 Drainage Ditches(最大流)
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Description Every time it rains on Farmer John’s fields, a pond forms over Bessie’s favorite clover patch. This means that the clover...原创 2018-07-06 10:51:07 · 158 阅读 · 0 评论 -
2018.07.06 POJ2536 Gopher II(二分图匹配)
Gopher II Time Limit: 2000MS Memory Limit: 65536K Description The gopher family, having averted the canine threat, must face a new predator. The are n gophers and m gopher holes, each at d...原创 2018-07-06 13:00:49 · 187 阅读 · 0 评论 -
2018.07.06 POJ1698 Alice's Chance(最大流)
Alice’s Chance Time Limit: 1000MS Memory Limit: 10000K Description Alice, a charming girl, have been dreaming of being a movie star for long. Her chances will come now, for several filmmakin...原创 2018-07-06 14:03:50 · 199 阅读 · 0 评论 -
2018.07.06 POJ 1459 Power Network(多源多汇最大流)
Power Network Time Limit: 2000MS Memory Limit: 32768K Description A power network consists of nodes (power stations, consumers and dispatchers) connected by power transport lines. A node u may...原创 2018-07-06 14:57:14 · 170 阅读 · 0 评论 -
2018.07.06 洛谷P2936 [USACO09JAN]全流Total Flow(最大流)
P2936 [USACO09JAN]全流Total Flow 题目描述 Farmer John always wants his cows to have enough water and thus has made a map of the N (1 &lt;= N &lt;= 700) water pipes on the farm that connect the well to the...原创 2018-07-06 15:29:32 · 301 阅读 · 0 评论 -
2018.08.02 洛谷P3355 骑士共存问题(最小割)
传送门 这题让我联想到一道叫做方格取数问题的题,如果想使摆的更多,就要使不能摆的更少,因此根据骑士的限制条件建图,求出至少有多少骑士不能摆,减一减就行了。 代码: #include&lt;bits/stdc++.h&gt; using namespace std; int n,m,tot=0,d[500005],dx[8]={1,1,-1,-1,2,2,-2,-2},dy[8]={2,-...原创 2018-08-02 21:57:11 · 3063 阅读 · 0 评论 -
2018.08.18 NOIP模拟 snow(最大流)
Snow 题目背景 SOURCE:NOIP2015-SHY4 题目描述 有一天,TT 要去 ABC 家。ABC 的大门外有 n 个站台,用 1 到 n 的正整数编号,TT 需要对每个站台访问恰好一定次数以后才能到 ABC 家。站台之间有 m 个单向的传送门,通过传送门到达另一个站台不需要花费任何代价。而如果不通过传送门,TT 就需要乘坐公共汽车,并花费 1 单位的钱。值得庆幸的是,任意两个...原创 2018-10-11 23:16:58 · 264 阅读 · 0 评论 -
2018.08.19 洛谷P1402 酒店之王(最大流)
传送门 最大流入门题,把人拆点即可。 代码: #include&lt;bits/stdc++.h&gt; #define N 505 using namespace std; inline int read(){ int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isd...原创 2018-08-19 21:32:16 · 254 阅读 · 0 评论 -
2018.08.20 loj#117. 有源汇有上下界最小流(模板)
传送门 这题真有意思。。。 先是有一个点T的我怀疑人生。 然后学大佬们封装了我的dinic就莫名其妙的过了??? 所以说锅给谁好呢? 给dinic吧。。。 解法就是先求出一段可行流,然后从t到s加一条容量为inf的边将能缩回去的都缩回去。 代码: #include<bits/stdc++.h> #define ll long long #define inf 0x3f3...原创 2018-08-20 21:25:40 · 356 阅读 · 0 评论 -
2018.08.20 loj#116. 有源汇有上下界最大流(模板)
传送门 貌似就是转成无源汇,然后两遍最大流搞定? 其实第二遍跑最大流是自动加上了第一次的答案。 代码: #include&amp;lt;bits/stdc++.h&amp;gt; #define N 100005 #define M 2000010 #define inf 0x3f3f3f3f using namespace std; inline int read(){ int ans=0; ...原创 2018-08-20 21:28:26 · 221 阅读 · 0 评论 -
bzoj2521: [Shoi2010]最小生成树(最小割)
传送门 按照题意建图跑最小割,完了。 代码: #include<bits/stdc++.h> #define ri register int using namespace std; const int rlen=1<<18|1; inline char gc(){ static char buf[rlen],*ib,*ob; (ib==ob)&&a...原创 2019-06-26 17:22:17 · 212 阅读 · 0 评论
分享