题目大概说有n个城市,由m条无向边相连,每条边每天最多运送cap桶酒且其运送一桶的花费是cost。现在从1号城市开始出发运酒,供应到2到n号城市,这些城市的收购单价是price,问最大的盈利是多少。

。。。顺路AC

 #include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
#define INF (1<<30)
#define MAXN 111
#define MAXM 111*222
struct Edge{
int u,v,cap,cost,next;
}edge[MAXM];
int head[MAXN];
int NV,NE,vs,vt; void addEdge(int u,int v,int cap,int cost){
edge[NE].u=u; edge[NE].v=v; edge[NE].cap=cap; edge[NE].cost=cost;
edge[NE].next=head[u]; head[u]=NE++;
edge[NE].u=v; edge[NE].v=u; edge[NE].cap=; edge[NE].cost=-cost;
edge[NE].next=head[v]; head[v]=NE++;
}
bool vis[MAXN];
int d[MAXN],pre[MAXN];
bool SPFA(){
for(int i=;i<NV;++i){
vis[i]=;
d[i]=INF;
}
vis[vs]=;
d[vs]=;
queue<int> que;
que.push(vs);
while(!que.empty()){
int u=que.front(); que.pop();
for(int i=head[u]; i!=-; i=edge[i].next){
int v=edge[i].v;
if(edge[i].cap && d[v]>d[u]+edge[i].cost){
d[v]=d[u]+edge[i].cost;
pre[v]=i;
if(!vis[v]){
vis[v]=;
que.push(v);
}
}
}
vis[u]=;
}
return d[vt]!=INF;
}
int MCMF(){
int res=;
while(SPFA()){
int flow=INF,cost=;
for(int u=vt; u!=vs; u=edge[pre[u]].u){
flow=min(flow,edge[pre[u]].cap);
}
for(int u=vt; u!=vs; u=edge[pre[u]].u){
edge[pre[u]].cap-=flow;
edge[pre[u]^].cap+=flow;
cost+=flow*edge[pre[u]].cost;
}
if(cost>=) break;
res+=cost;
}
return res;
}
int main(){
int n,m,a,b,c,d;
while(~scanf("%d%d",&n,&m)){
vs=; vt=n+; NV=vt+; NE=;
memset(head,-,sizeof(head));
for(int i=; i<=n; ++i){
scanf("%d",&a);
addEdge(i,vt,INF,-a);
}
while(m--){
scanf("%d%d%d%d",&a,&b,&c,&d);
addEdge(a,b,c,d);
addEdge(b,a,c,d);
}
printf("%d\n",-MCMF());
}
return ;
}

最新文章

  1. 移动Web初级入门
  2. Scalaz(22)- 泛函编程思维: Coerce Monadic Thinking
  3. 【codevs1227】 方格取数 2
  4. 使用TCMalloc优化OpenResty
  5. DOM笔记(九):引用类型、基本包装类型和单体内置对象
  6. R语言学习笔记:怎么从txt中读入数据
  7. JavaScript中style.left与offsetLeft的区别
  8. 一个神奇SQL引发的故障【转】
  9. servlet中的字符编码过滤器的使用
  10. 转: 谈JAVA_OPTS环境变量不起作用
  11. 移植Cocos2D到Android平台的原理
  12. 面试之路(18)-java的函数参数传递类型之值传递还是引用传递
  13. hibernate自定义校验Valid
  14. 六 java和Tomcat
  15. java-设计模式-索引
  16. TZOJ 2099 Sightseeing tour(网络流判混合图欧拉回路)
  17. Echars折线配置详解
  18. LeetCode69.x的平方根
  19. leetcode 两个排序的中位数 python
  20. 3143 二叉树的序遍历codevs

热门文章

  1. 淘宝(阿里百川)手机客户端开发日记第五篇 SharedPreferences使用详解
  2. C#装箱和拆箱(值类型和引用类型之间的转换)
  3. TCP同步与异步及阻塞模式,多线程+阻塞模式,非阻塞模式简单介绍
  4. HXOI 2014 PSet 4 Day 1 一模04日1 题解
  5. 夏令时 DST (Daylight Saving Time) java中的夏令时【转】
  6. 《ASP.NET1200例》高亮显示ListView中的数据行并自动切换图片
  7. debian下mysql主从配置
  8. kettle job如何利用java的反射机制获取执行的sql语句
  9. iOS 基于UIWebView的应用特点
  10. mysql cluster 运行的必备条件