图论 ------ 网络流
orz11111111
这个作者很懒,什么都没留下…
展开
-
BZOJ 1001 狼抓兔子 平面图最小割
题意:n*m地图 每个点可以走到其右边,下方,右下方.这3道路都有各自的流量限制.源点s为左上角,终点t为右下角,n,m堵住割上的边 则s-t无路径存在.花费最小也就是求最小割/最大流 n,m本图是平面图,平面图的最小割等于其新图的最短路.新图的点为原图的面.(建新图时对面合理的编号..)新图边的权值等于:原图中分割这两个面的边的权值. #include原创 2017-08-23 10:57:42 · 294 阅读 · 0 评论 -
CodeChef DEC14 Course Selection 最小割,建图,割边
题意: n门课程,m个学期. 同一门课可能在多个学期中都有开设a[i][j]表示在第j个学期修第i门课的成绩. a[i][j]=-1表示第j个学期没有开设第i门课.k个修课条件(u,v) 表示要修第v门课 必须先修完第u门课.n,m,k,a[i][j]<=100. 问修完n门课的最多平均分为多少? 分母n为固定的,总得分越大,平均分也越大. 反着考虑,总的扣分尽量小(从...原创 2018-11-01 10:50:52 · 274 阅读 · 0 评论 -
ZOJ 2676 Network Wars 0-1分数规划,最小割
题意:n点m条带权边的无向图.起点为s终点为t.n<=100.m<=400.输出一个边集S 使得删掉S后,s-t不存在路径. 并且 Σ(w[S[i]]) / |S| 最小 要求最小化 λ = f(x) = Σ w[i] * x[i] / Σ c[i] *x[i] = w*x / c*x [ x[i]代表选第i条边. 并且向量x要构成一个边割集.]...原创 2018-11-04 00:27:16 · 191 阅读 · 0 评论 -
BZOJ 1497 最大获利 最大权闭合图,最小割.
题意: n个基站,架设第i个基站花费为p[i]. m个加成,第j个加成为(a[j],b[j],c[j]) 表示 若架设基站(a[j],b[j]) 则带来收益c[j].n<=5e3, m<=5e4. 0<=c[i],p[i]<=100. 可以选任意个基站架设,问最大收益为多少? 建图:n+m个顶点. [1..n]顶点的权值为-p[i]. [n+1,n+m]个顶点的...原创 2018-11-04 00:26:30 · 145 阅读 · 0 评论 -
CF 808F Card Game 好题,最大点权独立集
题意:n张卡片,第i张卡片价值p[i],序号为c[i],等级为l[i],初始等级为1,不能选等级比自己大的物品.现在从n张卡片中选出一个子集,要求其价值和不低于k,并且任意两个序号和不是素数.问最少要升到多少级.n<=100,k<=1e5,p[i]<=1000,c[i]<=1e5,1<=l[i]<=n.首先1<=l[i]<=n<=...原创 2018-11-04 00:27:57 · 233 阅读 · 0 评论 -
BZOJ 1070 修车 费用流(拆点)
题意:同一时刻有N位车主到维修中心,告诉你a[i][j]第i个师傅修第j个人的车需要的时间.现在需要安排这M位师傅所维修的车及顺序,使得顾客平均等待的时间最小.顾客的等待时间是指从他把车送至维修中心到维修完毕所用的时间.2左边定点i为师傅 右边点j为车主 花费为a[i][j] 跑流量为n的最小费用最大流.wawawawaawa,一个师傅修多辆车时 等待时间需要累加!!原创 2017-08-31 09:32:55 · 282 阅读 · 0 评论 -
HDU 5889 Barricade 最短路+最小割
题意:n点m条边的图,每条边长度都为1,堵住第i条边需要代价w[i],敌人每次从n走到1都走最短路.n为源点,1为汇点,把n-1最短路上的边加到网络流的图中,容量为堵住这条边的代价,则求s-t的最小割 等价于求最大流d[u]有些不在s-t最短路上的边可能也会被加入(但不影响,因为沿着该边最后一定无法到t)#include using namespace std;const in原创 2017-09-16 21:00:27 · 255 阅读 · 0 评论 -
BZOJ 1061 志愿者招募 单纯形 OR 费用流
题意:某个项目需要N天才能完成 其中第i天至少需要Ai个人,一共有M类志愿者.其中第i类可以从第Si天工作到第Ti天,招募费用是每人Ci元.n利用要满足的等式 -> 流量平衡关系建图设第i类招了x[i]人则对样例有不等式x[1]>=a[1]x[1]+x[2]>=a[2]x[2]+x[3]>=a[3]若第i天超出的人数为d[i],则x[1]-d[1]=a[1]原创 2017-08-28 13:08:47 · 250 阅读 · 0 评论 -
BZOJ 1283 序列, 费用流,建图
题意:长度为n的序列a,第i个物品价值为a[i].选出一个子序列,满足任意一个长度为m的区间中,被子序列选中的个数<=k. n<=1e3,m,k<=100.问选出的子序列价值和的最大值.若k==1, 显然可以直接dp[i]=max(dp[i-1],dp[i-m]+a[i]). .子问题为k==1的情况. (或者i->i+m连接(cap=1,cost=a[i])的边....原创 2018-11-04 00:23:49 · 178 阅读 · 0 评论