一看就知道是模板题= = ,不说什么了= =

PS:回去搞期末了,暑假再来刷题了

CODE:

 #include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#define maxn 1010
#define maxm 20010
#define inf 0x7fffffff
using namespace std;
struct edges{
int to,next,cap,dist;bool b;
}edge[maxm];
int n,m,s,t,k,l;
int next[maxn],dist[maxn],way[maxn],h[maxn],p[maxn],gap[maxn];
bool b[maxn];
queue<int> q;
int addedge(int from,int to,int cap,int dist,bool bo){
l++;
edge[l*]=(edges){to,next[from],cap,dist,bo};
edge[l*+]=(edges){from,next[to],,-dist,bo};
next[from]=l*;next[to]=l*+;
return ;
}
bool spfa(){
memset(b,,sizeof(b));
for (int i=;i<=n;i++) dist[i]=inf;
dist[]=;
q.push();
while (!q.empty()){
int u=q.front();q.pop();
b[u]=;
for (int i=next[u];i;i=edge[i].next)
if (edge[i].cap&&dist[edge[i].to]>dist[u]+edge[i].dist) {
dist[edge[i].to]=dist[u]+edge[i].dist;
way[edge[i].to]=i;
if(!b[edge[i].to]){
b[edge[i].to]=;
q.push(edge[i].to);
}
}
}
if (dist[t]==inf) return ;
return ;
}
int mcmf(int cap){
int cost=;
while (spfa()){
int x=n,flow=inf;
while (x!=){
flow=min(flow,edge[way[x]].cap);
x=edge[way[x]^].to;
}
if (flow>=cap) return (cost+=dist[n]*cap);
cost+=dist[n]*flow;
cap-=flow;
x=n;
while(x!=){
edge[way[x]].cap-=flow;
edge[way[x]^].cap+=flow;
x=edge[way[x]^].to;
}
}
return cost;
}
int sap(int u,int flow){
if (u==t) return flow;
int cur=;
for (int i=p[u];i;i=edge[i].next)
if (edge[i].b&&edge[i].cap&&h[u]==h[edge[i].to]+){
int cut=sap(edge[i].to,min(flow-cur,edge[i].cap));
edge[i].cap-=cut;edge[i^].cap+=cut;
p[u]=i;
if ((cur+=cut)==flow ) return flow;
}
if (!(--gap[h[u]])) h[s]=n;
gap[++h[u]]++;
p[u]=next[u];
return cur;
}
int maxflow(){
memset(gap,,sizeof(gap));
memset(h,,sizeof(h));
gap[]=n;
for(int i=;i<=n;i++) p[i]=next[i];
int flow=;
while (h[s]<n) flow+=sap(s,inf);
return flow;
}
int main(){
scanf("%d%d%d",&n,&m,&k);
s=,t=n;
for (int i=;i<=m;i++) {
int x,y,cap,d;
scanf("%d%d%d%d",&x,&y,&cap,&d);
addedge(x,y,cap,,);
addedge(x,y,inf,d,);
}
int ans=maxflow();
printf("%d %d\n",ans,mcmf(k));
return ;
}
 
 

BZOJ 1834: [ZJOI2010]network 网络扩容(网络流+费用流)的更多相关文章

  1. BZOJ 1834 [ZJOI2010]network 网络扩容(费用流)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1834 [题目大意] 给定一张有向图,每条边都有一个容量C和一个扩容费用W. 这里扩容费 ...

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

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

  3. BZOJ_1834_[ZJOI2010]network 网络扩容_费用流

    BZOJ_1834_[ZJOI2010]network 网络扩容_费用流 题意: 给定一张有向图,每条边都有一个容量C和一个扩容费用W.这里扩容费用是指将容量扩大1所需的费用. 求:  1.在不扩容的 ...

  4. BZOJ 1834: [ZJOI2010]network 网络扩容(最大流+最小费用最大流)

    第一问直接跑最大流.然后将所有边再加一次,费用为扩容费用,容量为k,再从一个超级源点连一条容量为k,费用为0的边到原源点,从原汇点连一条同样的边到超级汇点,然  后跑最小费用最大流就OK了. ---- ...

  5. bzoj 1834: [ZJOI2010]network 网络扩容 -- 最大流+费用流

    1834: [ZJOI2010]network 网络扩容 Time Limit: 3 Sec  Memory Limit: 64 MB Description 给定一张有向图,每条边都有一个容量C和一 ...

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

    http://www.lydsy.com/JudgeOnline/problem.php?id=1834 我又思考人生了T_T,nd的数组开小了,一直wa,调了一个小时才发现啊!!!!!我一直以为我的 ...

  7. bzoj 1834 [ZJOI2010]network 网络扩容(MCMF)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1834 [题意] 给定一个有向图,每条边有容量C,扩容费用W,问最大流和使容量增加K的最 ...

  8. bzoj 1834: [ZJOI2010]network 网络扩容

    #include<cstdio> #include<iostream> #include<cstring> #define M 100000 #define inf ...

  9. BZOJ 1834: [ZJOI2010]network 网络扩容 最小费用流_最大流_残量网络

    对于第一问,跑一遍最大流即可. 对于第二问,在残量网络上的两点间建立边 <u,v>,容量为无限大,费用为扩充费用. 跑一遍最小费用流即可. Code: #include <vecto ...

随机推荐

  1. DOM:文档对象模型 --树模型

    文档:标签文档,对象:文档中每个元素对象,模型:抽象化的东西 一:window: 属性(值或者子对象):opener:打开当前窗口的源窗口,如果当前窗口是首次启动浏览器打开的,则opener是null ...

  2. 8.DNS :域名系统

    前面已经提到了访问一台机器要靠IP地址和MAC地址,其中,MAC地址可以通过ARP协议得到,所以这对用户是透明的,但是IP地址就不行,无论如何用户都需要用一个指定的IP来访问一台计算机,而IP地址又非 ...

  3. 开始Java学习(Java之负基础实战)

    开发平台: JavaSE:java标准平台,一般用于桌面程序开发 JavaEE:开发web(如网站+Sping) JavaME:开发移动应用 开发环境: JVM:跨平台核心. JRE:java运行时, ...

  4. 在asp.net中使用ajax记录

    一.问题描述 ajax在mvc中使用频繁,比如cms中的评论功能,但由于涉及到前后端开发,日久容易忘,在此做下记录. 二.内容 控制器中代码示例: /// <summary> /// 在文 ...

  5. 使用(Drawable)资源———AnimationDrawable资源

    AnimationDrawable代表一个动画. 下面以补间动画为例来介绍如何定义AnimationDrawable资源,定义补间动画的XML资源文件已<set.../>元素作为根元素,该 ...

  6. Canvas贝塞尔二级曲线

    当前点到控制点,控制点到末尾点的两个连线,与这两个连线相切:<!DOCTYPE html> <html lang="en"> <head> &l ...

  7. apache 运行php环境之困扰,无法加载多个不同的.html文件

    又是一个项目,为多个纯静态html页面h5游戏页,原本是一个简单得不能的项目,但是却多生了事端. 我按照apache的惯例,将文件上传到服务器的DocumentRoot目录,进行测试了. 刚开始使用目 ...

  8. HTML5常用标签分类

    1.行级元素标签:a.span.sup.sub.em.b.big.i.strong 2.块元素标签:div.p.h1~h6.ul.ol.li.table.form.article.footer.hea ...

  9. iOS开发中@property的属性weak nonatomic strong readonly等介绍

    @property与@synthesize是成对出现的,可以自动生成某个类成员变量的存取方法.在Xcode4.5以及以后的版本,@synthesize可以省略. 1.atomic与nonatomica ...

  10. iOS之内存分析

    静态内存分析(Product->Analyze) 静态内存分析是不运行程序,直接对代码进行分析. 但是没有真正分配内存,根据代码的上下文的语法结构,来分析是否有内存泄露 缺点:不一定准确,但是如 ...