http://acm.hdu.edu.cn/showproblem.php?pid=2448

和那个在地图上回家的差不多~~~

station之间是无向的,port与station是有向的,因为进去就不能出来。

费用流建图,即可

#include <cstring>
#include <cstdio>
#include <queue>
#include <iostream>
#define inf 0x3f3f3f3f
#define MAXN 3000
#define MAXM 300000
using namespace std;
struct node
{int u,v,f,c;
};
node e[MAXM];
int first[MAXN],next[MAXM],cc;
int inq[MAXN],pre[MAXN],preedge[MAXN],d[MAXN];
inline void add_edge(int u,int v,int f,int c)
{e[cc].u=u;e[cc].v=v;e[cc].f=f;e[cc].c=c;next[cc]=first[u];first[u]=cc;cc++;e[cc].v=u;e[cc].u=v;e[cc].f=0;e[cc].c=-c;next[cc]=first[v];first[v]=cc;cc++;
}
int SPFA(int s,int t)
{memset(inq,0,sizeof(inq));memset(d,inf,sizeof(d));memset(pre,-1,sizeof(pre));memset(preedge,-1,sizeof(preedge));d[s]=0;queue<int> q;q.push(s);while(!q.empty()){int u=q.front();q.pop();inq[u]=0;int i;for(i=first[u];i!=-1;i=next[i]){int v=e[i].v;if(e[i].f){if(d[v]>d[u]+e[i].c){d[v]=d[u]+e[i].c;pre[v]=u;preedge[v]=i;if(!inq[v]){inq[v]=1;q.push(v);}}}}}if(d[t]>=inf)return 0;elsereturn 1;
}
int Min_Cost_Flow(int s,int t)
{int ans_flow=0,ans_cost=0,mm,tmp;while(SPFA(s,t)){mm=inf;int u=t;while(pre[u]!=-1){tmp=preedge[u];mm=min(mm,e[tmp].f);u=pre[u];}u=t;while(pre[u]!=-1){tmp=preedge[u];e[tmp].f-=mm;e[tmp^1].f+=mm;u=pre[u];}ans_flow+=mm;ans_cost+=mm*d[t];}return ans_cost;
}
int main()
{int n,m,k,p;while(scanf("%d%d%d%d",&n,&m,&k,&p)!=EOF){memset(first,-1,sizeof(first));memset(next,-1,sizeof(next));cc=0;int i;int s=0,t=n+m+1;for(i=1;i<=n;i++){add_edge(i+m,t,1,0);int a;scanf("%d",&a);add_edge(0,a,1,0);}for(i=1;i<=k;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);add_edge(a,b,inf,c);add_edge(b,a,inf,c);}for(i=1;i<=p;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);add_edge(b,a+m,1,c);}int res=Min_Cost_Flow(s,t);printf("%d\n",res);}return 0;
}

hdu2448 费用流相关推荐

  1. [BZOJ 1221][HNOI2001]软件开发(费用流)

    Description 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员 ...

  2. 费用流 -- 四川省赛F-Direction Setting [拆边成点+费用流]

    题目链接 题目大意: 就是给你一个nnn个点mmm条边的无向图,每个点有个值是aia_iai​现在你把每条边都赋予一个方向之后这个图就是有向图了,那么设第iii个点的入度是did_idi​,现在设 D ...

  3. UVA1411 Ants(带权二分图的最大完美匹配、zkw费用流)

    题解 给定一些黑点白点,要求一个黑点链接一个白点并且线段不相交(转成二分图最大权匹配使用费用流解决)<训练指南>P351 输出方案:满流即为答案(满流是指这条路的流量跑满了,也就是说edg ...

  4. 餐巾计划问题 线性规划与网络流24题之10 费用流

    相关知识:最小费用(最大)流 问题描述: 一个餐厅在相继的N 天里, 每天需用的餐巾数不尽相同. 假设第i天需要ri块餐巾(i=1, 2,-,N).餐厅可以购买新的餐巾,每块餐巾的费用为p分:或者把旧 ...

  5. BZOJ1150[CTSC2007]数据备份Backup——模拟费用流+堆+链表

    题目描述 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游 ...

  6. bzoj3171: [Tjoi2013]循环格(费用流)

    传送门 其实这题的建图并不难(虽然我并没有想出来) 首先,每一个点的入度和出度必须为$1$ 那么我们考虑拆点 每个点的出度点向它能到达的点的入度点连边,容量$1$,如果方向为原来的方向则费用$0$否则 ...

  7. 洛谷 - P2045 - 方格取数加强版 - 费用流

    原来这种题的解法是费用流. 从一个方格的左上走到右下,最多走k次,每个数最多拿走一次. 每次走动的流量设为1,起始点拆点成限制流量k. 每个点拆成两条路,一条路限制流量1,费用为价值相反数.另一条路无 ...

  8. 【BZOJ2245】[SDOI2011]工作安排 拆边费用流

    [BZOJ2245][SDOI2011]工作安排 Description 你的公司接到了一批订单.订单要求你的公司提供n类产品,产品被编号为1~n,其中第i类产品共需要Ci件.公司共有m名员工,员工被 ...

  9. [Bzoj1061][Noi2008]志愿者招募(费用流)

    题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1061 一开始疯狂想dp,然后队友走过来瞄一眼就告诉我像费用流,菜的真实,jpg. 一种比 ...

最新文章

  1. ACM 中常用的算法有哪些?
  2. 从源码分析DEARGUI之add_menu
  3. java.lang包 下
  4. 8597 石子划分问题 dpdp,只考虑第一次即可
  5. SSH pts 虚拟终端
  6. 修正TiAnlogDisplay显示的问题
  7. 安卓ondraw刷新视图_android播放动画时是否会调用被操作的视图的onDraw方法?
  8. red hat 查看mysql密码_Red Hat 下 MySQL root密码恢复
  9. Queue和BlockingQueue的使用以及使用BlockingQueue实现生产者-消费者
  10. 32位寄存器用法介绍
  11. 滴滴开源基于 React 的移动端开发组件库-Pile.js
  12. iphone刷android怎么刷机,不用刷机 让iPhone运行Android 6.0
  13. java html邮件_java发送html模板邮件
  14. Android Paint,Canvas api 详解
  15. 苹果手机投屏linux电脑,iphone怎么投屏到电脑?苹果手机投屏到电脑图文教程
  16. 图解PKCS#1——第四部分 签名验签方案
  17. zed相机拆机_TX1入门教程硬件篇-外接双目相机ZED
  18. 区块链技术在食品供应链领域的应用
  19. 题目:求1+2!+3!+...+20!的和
  20. 东师计算机应用基础18秋在线作业3,东师计算机应用基础18秋在线作业100分答案...

热门文章

  1. 杭州/北京内推 | 阿里达摩院灵瞳实验室招聘研究型算法实习生(可转正)
  2. 华为云城市峰会深圳站 · 华为云区块链助力金融创新
  3. rt-thread i2c 使用教程
  4. ubuntu系统怎么退出tty模式(开机自动进入)?(仅供参考)
  5. 解决excel(日期变数字)导入数据库(数字变日期)
  6. ORA-01422: exact fetch returns more than requested number of rows
  7. 密码学入门(2):对称密码
  8. 匈牙利离散(板子向)
  9. 东华大学 oj1——求长方形的面积和周长
  10. 漫说Android 中SurfaceView蕴含的美