
网络流
ACM败犬
这个作者很懒,什么都没留下…
展开
-
codeforce gym 101667 : E - How Many to Be Happy? (最小割)
题目大意:给一个连通无向图,对于连通无向图的每条边,这条边可能在某一颗最小生成树上,如果在称为happy的边,也可能不在,称为unhappy的边。对于unhappy的边,总是可以删掉一些边使得它变成happy的边,设h(e)为使e变成happy最少需要删的边数,定义happy边的h值为0,让你求所有边的h值之和。 题解:先考虑unhappy的,对于一条边(u,v,w)想要加入到最小生成树,必须要在...原创 2019-07-01 11:59:23 · 249 阅读 · 0 评论 -
bzoj1497:最大获利(最大权闭合子图,最小割模型应用)
题目大意: 分析:满足第 i 个人必须要建 ai,bi两个中转站。假设存在一个最优解,最优解一定是满足了部分人。从 i 各建一条边到 ai,bi ,可以发现最优解符合最大权闭合子图的定义,得到最优解一定只建需要的中转站,不会多建其它多余的中转站(没有多余消费) 解决最大权闭合子图可以用网络流模型。 撇开最大权闭合子图来说: 可以将所有人连一条边到S,容量为获利,所有中转站连一条边到T,容量为成本...原创 2019-07-30 11:49:46 · 218 阅读 · 0 评论 -
洛谷P1340:拍照(最大权闭合子图)
题目链接:https://www.luogu.org/problem/P3410 裸的最大权闭合子图: 要获得每个人的钱有个必要条件:带齐这个人要求的人。每个人和他要求的人连一条有向边构成图,会发现最优解保留的点是一个最大权闭合子图。每个人和原点S建一条边容量为得到的钱,每个下属和T建一条边容量为要付的钱,原图的边保留,容量为无穷,跑最大流,用所有得到的钱减去最大流得到答案 #include&l...原创 2019-07-30 13:05:56 · 186 阅读 · 0 评论 -
洛谷 P2770:航空路线问题(最大费用最大流 + 输出路径)
题解:分析一下,要求往返经过最多点的路径,可以转化为求两条从s到t的不相交的尽量长的路径,根据要求限制,无向边变成有向边。求两条不相交的路径,将每个点拆开(x,x’),可以用网络流。又要尽量长,可以用最大费用最大流。 有解无解判断一下是否最大流是否等于2。输出路径需要遍历所有的边流完的边。 #include<bits/stdc++.h> using namespace std; c...原创 2019-08-02 16:30:52 · 623 阅读 · 0 评论 -
bzoj 1565:植物大战僵尸(最大权闭合子图 + tarjan判断每个点是否在环内)
题目大意:有n * m 的矩阵,每一个格子有一个植物,每个植物有一个能量值(可正可负)吃掉这个格子的植物就可以得到这个植物的能量值,有的植物可以保护某些格子的植物,如果你要吃掉某个植物,必须先吃掉保护它的植物。僵尸只能从最右边开始吃,吃一个植物之前必须先吃掉在它右边的植物,僵尸也可以换行吃,换行后还是得从最右边开始吃起,如果你是操作僵尸的玩家,你能获得的最大能力值的多少? 分析:分析一下那些限制条...原创 2019-07-30 16:11:54 · 277 阅读 · 0 评论 -
2019 Multi-University Training Contest 2:Harmonious Army(最小割模型)
题目大意:有 n 个人,有两种职业,Mage和Warrior,有m对关系,没对关系有u,v,A,B,C,u,v指的是编号为u,v的人。 若这俩人都为 Mage,则你获得 A 的力量值。若这俩人都为 Warrior ,你会获得 C力量值,若一人为Mage一人为Warrior,你会获得B力量值,现在让你来安排n个人的职业,使得获得的力量值最大。 分析:有 2n∗m2 ^ n * m2n∗m的暴力解法,...原创 2019-07-30 21:22:55 · 188 阅读 · 0 评论 -
洛谷P2766:最长不下降子序列问题(网络流最大流模型)
第一问暴力求解LIS。 第二问根据dp[i]==dp[j]+1,i>j,w[i]>=w[j]dp[i] == dp[j] + 1,i > j,w[i] >= w[j]dp[i]==dp[j]+1,i>j,w[i]>=w[j]建边,由于每个点只能选一次,得把每个点拆成(i,i’),建边(j’,i,1) (这里是关键,虽然每个点拆成...原创 2019-08-02 10:06:20 · 199 阅读 · 0 评论 -
洛谷P3254:圆桌问题(二分图多重匹配,网络流最大流)
分析:每个代表团的人数为ai,建(s,i,ai),每张桌子能容纳bj,建(j,t,bj)。每个代表团对所有桌子建(i,j,1),跑最大流判断是否满流。 输出方案:遍历网络图每条跑满的边,用桶记录的答案。 #include<bits/stdc++.h> using namespace std; const int maxn = 1e3 + 10; const int maxm = 2...原创 2019-08-02 11:08:32 · 200 阅读 · 0 评论 -
洛谷P2774:方格取数问题(二分图最大权独立集,最小割模型)
题解:用最小割模型求解二分图最大权独立解。方法的可行性和证明可参考《最小割模型在信息学竞赛中的应用》论文。 建图时将二分图X部和S相连,容量为点权,Y部和T点相连,容量为点权,原图的边保留。 由于是网格图,不需要二分染色,观察可以发现下标(x,y) x 和 y同奇偶的一定是在同一个部,不同奇偶的在另一个部。 #include<bits/stdc++.h> using namespac...原创 2019-08-02 13:17:34 · 191 阅读 · 0 评论