题目连接: (luogu) https://www.luogu.org/problemnew/show/P2604

(bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=1834

题解: 第一问所有的费用全按\(0\)建,跑完了之后很自然想到利用残余网络。

把\(n\)和一个新点\(T\)连边,然后原来的残量网络保留,在此基础上对于原来的每条边流量均按\(+\inf\)建,费用为原始费用再跑一遍即可。

时间复杂度\(O(MaxFlowMinCost(n,m))\)

(然而智障的我不会处理残量网路还想做\(K\)次费用流每次\(+1\),真是没脑子)

代码

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#define llong long long
using namespace std;const int N = 1002;
const int M = 10000;
const llong INF = 1000000000000ll;
struct Edge
{int u,v,nxt,rev; llong c,w;
} e[(M<<1)+3];
Edge ae[M+3];
int fe[N+3];
int que[N+3];
llong dis[N+3];
bool inq[N+3];
int lst[N+3];
int n,m,en,p,s,t;
llong mf,mc;void addedge(int u,int v,llong w,llong c)
{en++; e[en].u = u; e[en].v = v; e[en].w = w; e[en].c = c;e[en].nxt = fe[u]; fe[u] = en; e[en].rev = en+1;en++; e[en].u = v; e[en].v = u; e[en].w = 0; e[en].c = -c;e[en].nxt = fe[v]; fe[v] = en; e[en].rev = en-1;
}bool spfa()
{for(int i=1; i<=n; i++) dis[i] = INF;int head = 1,tail = 2; que[tail-1] = s; dis[s] = 0ll;while(head!=tail){int u = que[head]; head++; if(head==n+1) head = 1;for(int i=fe[u]; i; i=e[i].nxt){if(e[i].w>0 && dis[e[i].v]>dis[u]+e[i].c){dis[e[i].v] = dis[u]+e[i].c;lst[e[i].v] = i;if(!inq[e[i].v]){inq[e[i].v] = true;que[tail] = e[i].v; tail++; if(tail==n+1) tail = 1;}}}inq[u] = false;}return dis[t]!=INF;
}void calcflow()
{llong flow = INF;for(int i=t; i!=s; i=e[lst[i]].u){flow = min(flow,e[lst[i]].w);}for(int i=t; i!=s; i=e[lst[i]].u){e[lst[i]].w -= flow; e[e[lst[i]].rev].w += flow;}mf += flow; mc += flow*dis[t];
}void mfmc()
{while(spfa()){calcflow();}
}int main()
{scanf("%d%d%d",&n,&m,&p);for(int i=1; i<=m; i++){scanf("%d%d%lld%lld",&ae[i].u,&ae[i].v,&ae[i].w,&ae[i].c);addedge(ae[i].u,ae[i].v,ae[i].w,0ll);}s = 1; t = n; mf = mc = 0ll;mfmc();printf("%lld ",mf);n++; addedge(n-1,n,p,0); t = n;for(int i=1; i<=m; i++){addedge(ae[i].u,ae[i].v,INF,ae[i].c);}mf = mc = 0ll;mfmc();printf("%lld\n",mc);return 0;
}

BZOJ 1834 Luogu P2604 [ZJOI2010]网络扩容 (最小费用最大流)相关推荐

  1. P2604 ZJOI2010 网络扩容,费用流裸题

    网络扩容 题目链接 https://www.luogu.org/problemnew/show/P2604 题解 对于每条边u→vu \rightarrow vu→v,我们将按照容量=C=C=C,费用 ...

  2. P2604 [ZJOI2010]网络扩容

    思路 简单的费用流问题,跑出第一问后在残量网络上加边求最小费用即可 代码 #include <cstdio> #include <algorithm> #include < ...

  3. BZOJ 4819 Luogu P3705 [SDOI2017]新生舞会 (最大费用最大流、二分、分数规划)

    现在怎么做的题都这么水了.. 题目链接: (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=4819 (luogu) https://ww ...

  4. bzoj 4108: [Wf2015]Catering|带上下界最小费用可行流

    终于搞懂 上下界网络流了! 注意边的数量 #include <cstdio> #include <cstring> #include <iostream> #inc ...

  5. 网络流----最小费用最大流(EK+SPFA)

    先来介绍一下什么是费用流(部分内容参考bilibili董晓算法) 给定一个网络G=(V,E),每条边有容量限制w(u,v),还有单位流量的费用c(u,v). 当(u,v)的流量为f(u,v)时,需要花 ...

  6. bzoj 1834: [ZJOI2010]network 网络扩容【最大流+最小费用最大流】

    第一问直接跑最大流即可.建图的时候按照费用流建,费用为0. 对于第二问,在第一问dinic剩下的残量网络上建图,对原图的每条边(i,j),建(i,j,inf,cij),表示可以用c的花费增广这条路.然 ...

  7. [ZJOI2010]网络扩容[网络流24题]

    [ZJOI2010]网络扩容[网络流24题] 题意: 给定一张有向图,每条边都有一个容量 c 和一个扩容费用 w.这里扩容费用是指将容量扩大 1 所需的费用.求: 在不扩容的情况下,1 到 n 的最大 ...

  8. BZOJ 1920 Luogu P4217 [CTSC2010]产品销售 (模拟费用流、线段树)

    题目链接 (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=1920 (luogu) https://www.luogu.org/prob ...

  9. 乌鲁木齐网络赛J题(最小费用最大流模板)

    ACM ICPC 乌鲁木齐网络赛 J. Our Journey of Dalian Ends 2017-09-09 17:24 243人阅读 评论(0) 收藏 举报  分类: 网络流(33)  版权声 ...

最新文章

  1. iOS之深入解析AppDelegate重构
  2. 一行 Python 代码轻松构建树状热力图
  3. 《子弹笔记术》[日]杉野干人(作者)epub+mobi+azw3格式下载
  4. 数组遍历VS对象遍历
  5. vue 给iframe设置src_vue组件中使用iframe元素
  6. 可伸缩架构-面向增长应用的高可用
  7. centos7 挂载镜像盘 LVM处理的不合理
  8. redis 分布式锁流程图
  9. 应用安全-安全设备-Waf系列-软Waf-安全狗(Safedog)
  10. java中的servlet_关于JavaWeb中Servlet的总结
  11. [渝粤教育] 郑州科技学院 数控加工技术 参考 资料
  12. K8S报error: You must be logged in to the server错误
  13. word文件打不开怎么办?显示的是:调试,发送错误报告,不发送
  14. 【ResNet残差网络解析】
  15. amd linux raid,RAID的详解
  16. android9使用type-c接口,插入线控耳机与数据线监听混乱
  17. R语言如何从外部读取数据到R中
  18. win10系统禁用笔记本自带键盘
  19. 微信小程序实现瀑布流布局
  20. 天馈线频谱综合信号测试仪是什么 什么品牌的好用

热门文章

  1. ETPS英文文本处理软件
  2. 威联通服务器显示磁盘为挂载,如何在 QNAP NAS 上使用虚拟磁盘?
  3. yolov3安卓实现_重磅!MobileNet-YOLOv3来了(含三种框架开源代码)
  4. 怎么把网页源码家入hexo博客_一款被大厂选用的 Hexo 博客主题
  5. delphi中的bpl开发注意事项
  6. 【CyberSecurityLearning 70】DC系列之DC-1渗透测试(Drupal)
  7. shadow ssdt学习笔记
  8. idea包名呈现层级显示
  9. 异常解决(二)-- AttributeError: cannot assign module before Module.__init__() call
  10. java 高级数据类型_java 数据类型(上):分类