网络流
LowestJN
强省弱OIer
展开
-
[Codeforces 808F] [二分] [最小割] Card Game
题意大概就是选一些物品,这个物品魔力值的两两之和为合数,物品等级要小于你的等级,求你最小的等级,可以选出这样的一些物品使这些物品能力值之和>=k。首先可以二分答案,然后就变成最小割的经典模型魔力值为奇数的向源点连边,偶数向汇点连边,魔力值之和为合数的两个物品之间连边#include <cstdio>#include <iostream>#include <algorithm>#include原创 2017-05-17 08:17:57 · 834 阅读 · 0 评论 -
[上下界费用流] BZOJ2055. 80人环游世界
又一道模板题按题意建图,就是一个上下界的网络流了M个人的限制,只要把tt到ss的边上流量设为M就行了#include <cstdio>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N=510,inf=1<<30;int S,T,ss,tt,n,m,cnt=1,v[N],G原创 2017-12-17 20:02:50 · 397 阅读 · 0 评论 -
[最小割] Codeforces 434D. Nanami's Power Plant
因为费用是个二次函数那么把点 ii 拆成 ri−li+1r_i-l_i+1 个点,第 jj 个点 向 j+1j+1 点连流量为 −f(i,j)-f(i,j) 的边,SS 向 lil_i 连边,rir_i 向 TT 连边这样求一个最小割就是答案。然后因为有若干限制,那么 xu≤xv+dx_u\le x_v+d 那么 (,vi)(,vi) 向 (u,i+d)(u,i+d) 连一条流量无穷大的边就好了#i原创 2017-10-26 11:04:43 · 475 阅读 · 0 评论 -
[最小权路径覆盖 & 网络流] BZOJ2324 :[ZJOI2011] 营救皮卡丘
做了那道80人环游世界,感觉这题也是一个套路…自己很naive地把每个点拆成三个点建图…其实重构一下图就很简单了#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <cstring>using namespace std;const int N=550,inf=1<<29;int n原创 2017-12-18 19:31:59 · 354 阅读 · 0 评论 -
[距离限制模型 & 网络流] BZOJ3144 :[Hnoi2013] 切糕
就是APIO2017何昊天课件里讲的模型跟这题一样#include <cstdio>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N=100010,inf=1<<29;int n,m,q,cnt=1,G[N],cur[N];struct edge{ int t,nx原创 2017-12-18 19:36:00 · 429 阅读 · 0 评论 -
[距离限制模型 & 最小割]TopCoder SRM590 DIV1 1000. FoxAndCity
——APIO2017何昊天《APIO2017 网络流建模及其应用》上一题就是那个切糕// BEGIN CUT HERE // END CUT HERE #line 5 "FoxAndCity.cpp" #include <vector> #include <list> #include <map> #include <set> #include <deque> #inc原创 2017-12-18 20:39:14 · 664 阅读 · 0 评论 -
[暴搜 & 网络流判定] Topcoder SRM549 DIV1 Hard. CosmicBlocks
n很小可以暴搜所有情况合法性用上下界网络流判断// BEGIN CUT HERE // END CUT HERE #include <vector> #include <list> #include <map> #include <set> #include <deque> #include <stack> #include <bitset> #include <a原创 2018-01-03 09:24:19 · 501 阅读 · 0 评论 -
[网络流] Topcoder SRM556DIV. OldBridges
只有一个人的时候,可以把图建出来看是否满流但是两个人的时候会出现特殊情况把b1和b2反过来在跑一遍就好了#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <vector>#include <...原创 2018-03-08 14:51:58 · 926 阅读 · 0 评论 -
[网络流] BZOJ3894 文理分科
经典模型我都不会每个点拆成三个点,分别表示“选文理”“周围的人都选文科”“周围的人都选理科”然后根据关系连边#include <cstdio>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N=10001...原创 2018-03-08 18:29:14 · 383 阅读 · 0 评论 -
[最小割] Topcoder SRM558Div1. SurroundingGame
对网格黑白染色黑的格子和源点连边,白的格子和汇点连边因为如果保留benefit就必去删去cost或者所以和他相连的格子的cost大概是这样 跑最小割#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include &l...原创 2018-03-08 18:40:45 · 573 阅读 · 0 评论 -
[二分 & 上下界网络流] BZOJ2406. 矩阵
二分答案每一行每一列看做一个点,S向这个点连边且流量在[ΣAi,j-x,ΣAi,j+x]之间,然后行与列之间连流量在[L,R]之间的边跑上下界网络流盼是否存在可行流就行了#include <cstdio>#include <iostream>#include <algorithm>#include <queue>#include <cstring>using namespace std;co原创 2017-12-17 19:40:26 · 370 阅读 · 0 评论 -
[最小费用可行流] BZOJ2502. 清理雪道
模板题吧#include <cstdio>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N=100010,inf=1<<30;int n,cnt=1,G[N],S,T,ss,tt;struct edge{ int t,nx,f;}E[N<<2];inline vo原创 2017-12-16 17:14:35 · 505 阅读 · 0 评论 -
[线性规划 费用流]Codeforces Gym101190D.Delight for a cat
先写出线性规划标准型,然后差分建网络流具体可以看这个题解#include <cstdio>#include <iostream>#include <algorithm>#include <queue>using namespace std;typedef long long ll;const int N=1010;const ll inf=1LL<<60;int n,k,ms,me,cnt=原创 2017-10-02 19:17:20 · 541 阅读 · 0 评论 -
[线性规划 费用流]BZOJ1061 志愿者招募 && BZOJ3112防守战线
sol.1 差分建图 每个变量只在两个等式中出现,就相当于网络流中一条边的流量,就可以建图了sol.2 线性规划对偶网络流用S(i)表示前i个中有几个人,v(i)表示第i个放了几个人 那么有S(r)-S(l-1)>=k,s(i-1)+v(i)>=s(i) 对偶到上面的费用流形式就可以了//bzoj3112#include <cstdio>#include <iostream>#inclu原创 2017-10-02 19:27:44 · 542 阅读 · 0 评论 -
[动态网络 网络流] LOJ#6068.「2017 山东一轮集训 Day4」棋盘
这种棋盘模型很像网络流但是边很难建。可以动态加边,每次跑完一边费用流,把流过的边重新建一条,加上费用就好了#include <cstdio>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N=10010;int n,q,nx,ny,S,T,cnt=1,lst,G[N],an原创 2017-10-12 14:25:39 · 732 阅读 · 0 评论 -
[模拟费用流] Codeforces Gym101190 NEERC2016M. Mole Tunnels
可以费用流建图。但是数据范围太大,那么记一下每个点相连的反向边的流量。枚举lca就相当于模拟费用流找一条最短的增广路树高log,复杂度就是 O(nlogn)O(n\log n )#include <cstdio>#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int N=1原创 2017-10-24 15:38:03 · 497 阅读 · 0 评论 -
[最大权闭合子图 & 最小割] BZOJ1497: [NOI2006] 最大获利
一道最大权闭合子图模板题 好像就是网络流24题中太空飞行计划…#include <cstdio>#include <iostream>#include <algorithm>#include <queue>using namespace std;const int N=1000010,inf=1<<29;int n,m,S,T,cnt=1,G[N],cur[N];struct edge{原创 2017-12-19 18:39:37 · 378 阅读 · 0 评论 -
[最大权闭合子图] BZOJ4873: [Shoi2017] 寿司餐厅
di,jd_{i,j} 向 di+1,jd_{i+1,j} 和 di,j−1d_{i,j-1} 连边,就是一个最大权闭合子图模型了… 每个编号新建一个点,然后 di,id_{i,i} 向 aia_i 连边就行了#include <cstdio>#include <iostream>#include <algorithm>#include <queue>using namespace std;原创 2017-12-19 18:42:25 · 316 阅读 · 0 评论 -
[最大密度子图] 2017 计蒜之道 初赛 第三场. 腾讯狼人杀
边带权的最大密度子图带权的最大密度子图有两种做法。1. 二分答案 xx,然后判断 ∑wi,j−xk(2n−k)\sum w_{i,j} -xk(2n-k) 的最大值是否大于零 ∑wi,j−xk(2n−k)\sum w_{i,j} -xk(2n-k) 这东西可以拆成 ∑(wi,j+2x)−k(2n−1)x\sum (w_{i,j}+2x)-k(2n-1)x 相当于每条边权加上 2x2x,点权设为原创 2017-12-19 21:35:54 · 443 阅读 · 0 评论 -
[LP对偶 & 最大费用可行流] TopCoder SRM 676 div1 Farmville
二分答案 XX 设植物开始生长的时间是 xix_i ,结束生长的时间为 yiy_i那么要满足以下限制yi≥xiy_i\ge x_iyi≥xi+ti−diy_i\ge x_i+t_i-d_ixi≥yjx_i\ge y_j(jj 要在 ii 之前生长)xt≥yix_t\ge y_ixi≥ysx_i\ge y_s用这个东西对欧成最大费用可行流,处理一下正权环就好了#line 5 "Farmv原创 2017-12-15 19:31:52 · 558 阅读 · 0 评论 -
[费用流] ACM-ICPC Asia China-Final Contest J. Mr.Panda and TubeMaster
%%%Manchery#include <cstdio>#include <iostream>#include <algorithm>#include <cstring>#include <queue>using namespace std;const int N=10010,inf=1<<30;int t,n,m,cnt,S,T,SS,TT,ans,G[N],tag[N];struct原创 2017-12-16 12:28:44 · 516 阅读 · 0 评论 -
[费用流] LOJ#545. 「LibreOJ β Round #7」小埋与游乐场
有两种操作是有效的lowbit(ai)>lowbit(bj)lowbit(ai)>lowbit(bj)lowbit(a_i)>lowbit(b_j) 或者 ai=bjai=bja_i=b_j当 lowbit(ai)>lowbit(bj)lowbit(ai)>lowbit(bj)lowbit(a_i)>lowbit(b_j) 的 aiaia_i 和 bjbjb_j 操...原创 2018-02-25 15:44:30 · 493 阅读 · 0 评论