UVA 10594 Data Flow
UVA_10594
这个题目没看懂什么意思,但看样例觉得应该是把边的容量都设成K,把费用设成时间,然后求个从1到N的最小费用流。为了限制流量,我们可以连一条容量为D、费用为0的0->1这样的有向边,然后求图的最小费用最大流即可。
#include<stdio.h>#include<string.h>#define MAXD 110#define MAXM 20100const long long int INF = 10000000000000000ll;int first[MAXD], next[MAXM], v[MAXM], a[MAXM], b[MAXM], N, M, e;int p[MAXD], link[MAXD], q[MAXD], inq[MAXD];long long int w[MAXM], cost[MAXM], flow[MAXM], D, K;long long int d[MAXD];void add(int x, int y, long long int c, long long int f){ v[e] = y; cost[e] = c; flow[e] = f; next[e] = first[x]; first[x] = e; e ++;}int init(){int i;if(scanf("%d%d", &N, &M) != 2)return 0;for(i = 0; i < M; i ++) scanf("%d%d%lld", &a[i], &b[i], &w[i]); scanf("%lld%lld", &D, &K); e = 0; memset(first, -1, sizeof(first));for(i = 0; i < M; i ++) { add(a[i], b[i], w[i], K); add(b[i], a[i], -w[i], 0); add(b[i], a[i], w[i], K); add(a[i], b[i], -w[i], 0); } add(0, 1, 0, D); add(1, 0, 0, 0);return 1;}void SPFA(){int i, u, front, rear;for(i = 1; i <= N; i ++) d[i] = INF; d[0] = 0; memset(inq, 0, sizeof(inq)); front = rear = 0; q[rear ++] = 0; inq[0] = 1;while(front != rear) { u = q[front ++];if(front > N) front = 0; inq[u] = 0;for(i = first[u]; i != -1; i = next[i])if(flow[i] && d[u] + cost[i] < d[v[i]]) { d[v[i]] = d[u] + cost[i]; p[v[i]] = u; link[v[i]] = i;if(!inq[v[i]]) { q[rear ++] = v[i];if(rear > N) rear = 0; inq[v[i]] = 1; } } }}long long int mincost(){long long int res = 0, f = 0, a;int i, u;for(;;) { SPFA();if(d[N] == INF)break; a = INF;for(u = N; u != 0; u = p[u]) {int y =link[u];if(flow[y] < a) a = flow[y]; }for(u = N; u != 0; u = p[u]) {int y = link[u]; flow[y] -= a; flow[y ^ 1] += a; } res += a * d[N]; f += a; }if(f == D)return res;elsereturn -1;}int main(){while(init()) {long long int res = mincost();if(res >= 0) printf("%lld\n", res);else printf("Impossible.\n"); }return 0;}
转载于:https://www.cnblogs.com/staginner/archive/2011/10/16/2214381.html
UVA 10594 Data Flow相关推荐
- 深度学习编译器Data Flow和Control Flow
深度学习编译器Data Flow和Control Flow 本文介绍了一下深度学习框架的Data Flow和Control Flow,基于TensorFlow解释了TensorFlow是如何在静态图中 ...
- Spring Cloud Data Flow 中的 ETL
来源:SpringForAll社区 1 概述 Spring Cloud Data Flow是一个用于构建实时数据管道和批处理过程的云原生工具包. Spring Cloud Data Flow已准备好用 ...
- Pivotal发布Spring Cloud Data Flow 1.5版本
Pivotal发布了Spring Cloud Data Flow 1.5版本,这是一款用于构建实时数据服务的项目,该版本的新功能包括: \\ 对用户界面改进\\t 更新的Spring Cloud St ...
- 01_关于TensorFlow、什么是数据流图(Data Flow Graph)、TensorFlow的特征、谁可以使用Tensorflow、为啥Google要开源这个神器?
1 关于TensorFlow TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edges)则表 ...
- Spring Cloud Data Flow手动安装
前言 Spring Cloud Data Flow 2.4.2 win7 简介 Microservice based Streaming and Batch data processing for C ...
- [论文阅读] (03) 清华张超老师 - GreyOne: Discover Vulnerabilities with Data Flow Sensitive Fuzzing
数据流敏感的漏洞挖掘方法 Discover Vulnerabilities with Flow Sensitive Fuzzing Chao Zhang 清华大学 2nd International ...
- goim 中的 data flow 数据流转及思考
goim 文章系列(共5篇): goim 架构与定制 从goim定制, 浅谈 golang 的 interface 解耦合与gRPC goim中的 bilibili/discovery (eureka ...
- 微软BI 之SSIS 系列 - 理解Data Flow Task 中的同步与异步, 阻塞,半阻塞和全阻塞以及Buffer 缓存概念...
开篇介绍 在 SSIS Dataflow 数据流中的组件可以分为 Synchronous 同步和 Asynchronous 异步这两种类型. 同步与异步 Synchronous and Asynchr ...
- 数据可视化 —— 数据流图(Data Flow Diagram)
数据流图(Data Flow Diagram):简称 DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能.数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表 ...
最新文章
- 第二阶段团队项目冲刺站立会议(九)
- php xml对象解析_php解析xml 的四种简单方法(附实例)
- Window 2003证书服务器迁移到Windows 2008 R2
- 计算机的系统组成说课教案,计算机系统组成说课稿.doc
- Android 功耗(11)---Android 功耗分析之wakelock
- 深度优先搜索之图的表示方法
- linux定时任务crontab的设置
- laravel路由和MVC
- 去除本机利用ssh协议登陆远程机器的痕迹
- 《深入浅出struts》读书笔记(2)
- Linux下格式化sd卡和重新分区
- border-color属性设置单边边框和综合四边边框颜色
- SELECT 1 FROM DUAL中的DUAL的作用
- Enterprise Architect:绘制基本包图(详细步骤)
- 管理IT外包的七大秘诀
- 金蝶K3 SQL报表系列-委外未勾稽明细表金蝶K3 SQL报表系列-委外未勾稽明细表
- 周测作业五(apache的安装与配置)
- 居中小圆点html,圆点怎么打
- 【特写】中国卡通形象设计师——初心不改,画作一方天地
- CPU处理器的分类(ARM系列中央处理器)
热门文章
- 大白话 + 13 张图解 Kafka
- 不懂算法,还想进大厂?做梦吧
- 好文 | 架构师更多的是和人打交道,说说我见到和听说到的架构师升级步骤和平时的工作内容
- raft原理的动画演示
- 多线程:happens-before 先行发生原则
- Android --- 无法预览xml布局视图的解决办法
- 计算器显示代码java_java编写的计算器源代码
- java 重构 if else_java中繁杂的if/else怎么重构
- opencv4 c++ 提取图片中的白色区域_【从零学习OpenCV 4】形态学应用
- 成功解决pandas.core.frame.DataFrame格式数据与numpy.ndarray格式数据不一致导致无法运算问题