题目:http://www.lightoj.com/volume_showproblem.php?problem=1404

题意:给定一个图,有n个顶点m条无向边,每条边都有容量和费用,求从1到n穿输p的数据量时的费用。此题中流量和费用貌似给反了-_-||

思路:最小费用流模板题了,不过是无向图,记得费用流无向图和最大流无向图的处理方式不一样,最大流在连边时改变反向边容量,而费用流一定要两次连边

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;const int N = 60;
const int INF = 0x3f3f3f3f;
struct edge
{int st, to, cost, cap, next;
}g[N*N];
int head[N], dis[N], pre[N];
bool vis[N];
int cnt, cas = 0;
void add_edge(int v, int u, int cost, int cap)
{g[cnt].st = v, g[cnt].to = u, g[cnt].cost = cost, g[cnt].cap = cap, g[cnt].next = head[v], head[v] = cnt++;g[cnt].st = u, g[cnt].to = v, g[cnt].cost = -cost, g[cnt].cap = 0, g[cnt].next = head[u], head[u] = cnt++;
}
int cost_flow(int s, int t, int f)
{int res = 0;while(f > 0){memset(dis, 0x3f, sizeof dis);memset(vis, 0, sizeof vis);memset(pre, -1, sizeof pre);queue<int> que;dis[s] = 0;vis[s] = true;que.push(s);while(! que.empty()){int v = que.front(); que.pop();for(int i = head[v]; i != -1; i = g[i].next){int u = g[i].to;if(g[i].cap > 0 && dis[u] > dis[v] + g[i].cost){dis[u] = dis[v] + g[i].cost;pre[u] = i;if(! vis[u])que.push(u), vis[u] = true;}}vis[v] = false;}if(dis[t] == INF) return -1;int d = f;for(int i = pre[t]; i != -1; i = pre[g[i].st])d = min(d, g[i].cap);f -= d;res += d * dis[t];for(int i = pre[t]; i != -1; i = pre[g[i].st])g[i].cap -= d, g[i^1].cap += d;}return res;
}
int main()
{int t, n, m, f;int a, b, c, d;scanf("%d", &t);while(t--){cnt = 0;memset(head, -1, sizeof head);scanf("%d%d%d", &n, &m, &f);for(int i = 1; i <= m; i++){scanf("%d%d%d%d", &a, &b, &c, &d);add_edge(a, b, d, c);add_edge(b, a, d, c);}int res = cost_flow(1, n, f);if(res != -1) printf("Case %d: %d\n", ++cas, res);else printf("Case %d: impossible\n", ++cas);}return 0;
}

LightOJ 1404 Sending Secret Messages 费用流相关推荐

  1. LightOJ - 1404 Sending Secret Messages(最小费用最大流)

    题目链接:点击查看 题目大意:给出一张由n个点和m条边组成的无向带权图,并且每个单位的权值都附加着一个花费,现在要求从点1到点n传输大小为p的数据,最小需要多少花费 题目分析:最小费用最大流的模板题目 ...

  2. LightOJ - 1237 Cyber Cafe(费用流)

    题目链接:点击查看 题目大意:现在有一个咖啡店,给出n个客户的进店时间和离店时间,现在规定每个客户需要交的钱为(T-K)^2这个数值不超过G,其中T为客户在店中呆的时间,一开始老板是按照每个客户的进店 ...

  3. LightOJ - 1243 Guardian Knights(最小费用最大流+bfs)

    题目链接:点击查看 题目大意:给出一个n*n的地图,其中: #:代表墙 .:代表空格子 大写字母:代表骑士 m:代表谷仓 现在要求每个谷仓都要至少被一个骑士保护,规定骑士保护某个谷仓的代价是骑士到达谷 ...

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. Solr 6.7学习笔记(04)-- Suggest
  2. ascii码01100001_ASCII编码和Unicode编码
  3. linux 中 svn 服务器搭建 重启
  4. 这是一场数学、数学、数学的盛会
  5. 信息学奥赛一本通C++语言——1102: 与指定数字相同的数的个数
  6. python类与对象做项目_python 类和对象
  7. opencv各种小程序代码
  8. [读书笔记] 代码整洁之道(二)
  9. creo数控编程怎么样_CREO数控编程NC图文教程 -
  10. 庄辰超的势能,梁建章的心力
  11. 网络安全--风险评估
  12. Simulink代码生成: Switch模块及其代码
  13. 常用电路设计之PRBS伪随机码发生器的设计
  14. U转串口时,鼠标乱动,解决办法
  15. 利用模型算法部署图像识别_利用这些技巧增强您的图像识别模型
  16. 自己动手,搭建家庭文件、打印、影音服务器
  17. 使用Spring Integration实现定时任务
  18. Conflux 网络(Hydra)2.0.3 版本升级公告
  19. 应用智慧农业大棚控制系统
  20. u-boot 2015.01 :has EABI version 0, but target u-boot has EABI version 4

热门文章

  1. ethtool netlink 框架原理浅析
  2. flarum编辑器预览插件
  3. 安卓手机阅读器_罗辑思维旗下得到APP发布全新阅读器,7.8英寸安卓9.0系统
  4. 冯诺依曼计算机的运行原理
  5. 计算机专业面试问题同济大学,同济大学计算机考研初试和复试经验分享_跨考网...
  6. 区块链笔记:技术栈、对等网络、密码技术、账户模型、网络共识、脚本系统、扩展技术
  7. BSOJ3806 TYVJ 2032 升降梯上
  8. 2018年到现在很多 P2P 平台 暴雷 我想 唠一下嗑
  9. Vim 格式化 xml文件, 进行快捷键映射。
  10. 中国石油大学(华东)数据分析(Python)