UESTC 1143 数据传输 网络流 最大流 Dinic
数据传输
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others)
Status
机房里面有m台电脑,n台网线,每条网线都每秒中最多传送的数据量,如今须要你计算从标号为1的电脑传送数据到编号为m的电脑,问一秒内
最多传送多少数据?
Input
第1行: 两个用空格分开的整数N(0≤N≤200)和 M(2≤M≤200)。N网线的数量,M是电脑的数量。
第二行到第N+1行:
每行有三个整数,Si。Ei 和 Ci。
Si 和 Ei (1≤Si,Ei≤M) 指明电脑编号。数据从 Si流向 Ei。
Ci(0≤Ci≤10,000,000)
是这条网线的最大容量。
Output
输出一个整数。即排水的最大流量。
Sample input and output
| Sample Input | Sample Output |
|---|---|
5 4 |
50 |
Source
My Solution
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
const int inf = 1000000000;
const int maxn = 200, maxm = 200; //the max number of vertices and edges struct Edge
{
int v, f, nxt;
}; int n, src, sink;
int g[maxn+8];
int nume;
Edge e[maxm*2+8]; void addedge(int u, int v, int c)
{
e[++nume].v = v;
e[nume].f = c;
e[nume].nxt = g[u];
g[u] = nume;
e[++nume].v = u;
e[nume].f = 0;
e[nume].nxt = g[v];
g[v] = nume;
} void init()
{
memset(g, 0, sizeof(g));
nume = 1;
} queue<int> que;
bool vis[maxn+8];
int dist[maxn+8]; //distance void bfs()
{
memset(dist, 0, sizeof(dist));
while(!que.empty()) que.pop();
vis[src] = true;
que.push(src);
while(!que.empty()){
int u = que.front();
que.pop();
for(int i = g[u]; i; i = e[i].nxt) {
if(e[i].f && !vis[e[i].v]) {
que.push(e[i].v);
dist[e[i].v] = dist[u] + 1;
vis[e[i].v] = true;
}
}
}
} int dfs(int u, int delta)
{
if(u == sink){
return delta;
}
else{
int ret = 0;
for(int i = g[u]; delta && i; i = e[i].nxt) {
if(e[i].f && dist[e[i].v] == dist[u] + 1) {
int dd = dfs(e[i].v, min(e[i].f, delta));
e[i].f -= dd;
e[i^1].f += dd;
delta -= dd;
ret += dd;
}
}
return ret;
}
} int maxflow()
{
int ret = 0;
while(true) {
memset(vis, 0, sizeof(vis));
bfs();
if(!vis[sink]) return ret;
ret += dfs(src, inf);
}
} int main()
{
int N, M, S, E, C;
scanf("%d%d", &N, &M);
src = 1;sink = M;
while(N--){
scanf("%d%d%d", &S, &E, &C);
addedge(S, E, C);
}
printf("%d", maxflow());
return 0;
}
Thank you!
UESTC 1143 数据传输 网络流 最大流 Dinic的更多相关文章
- [讲解]网络流最大流dinic算法
网络流最大流算法dinic ps:本文章不适合萌新,我写这个主要是为了复习一些细节,概念介绍比较模糊,建议多刷题去理解 例题:codevs草地排水,方格取数 [抒情一下] 虽然老师说这个多半不考,但是 ...
- 网络流最大流——dinic算法
前言 网络流问题是一个很深奥的问题,对应也有许多很优秀的算法.但是本文只会讲述dinic算法 最近写了好多网络流的题目,想想看还是写一篇来总结一下网络流和dinic算法以免以后自己忘了... 网络流问 ...
- Power Network(网络流最大流 & dinic算法 + 优化)
Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 24019 Accepted: 12540 D ...
- 网络流--最大流dinic模板
标准的大白书式模板,除了变量名并不一样……在主函数中只需要用到 init 函数.add 函数以及 mf 函数 #include<stdio.h> //差不多要加这么些头文件 #includ ...
- (网络流 最大流 Dinic || SAP)Control -- hdu --4289
链接: http://acm.hdu.edu.cn/showproblem.php?pid=4289 http://acm.hust.edu.cn/vjudge/contest/view.action ...
- 【uva 11082】Matrix Decompressing(图论--网络流最大流 Dinic+拆点二分图匹配)
题意:有一个N行M列的正整数矩阵,输入N个前1~N行所有元素之和,以及M个前1~M列所有元素之和.要求找一个满足这些条件,并且矩阵中的元素都是1~20之间的正整数的矩阵.输入保证有解,而且1≤N,M≤ ...
- 【uva 753】A Plug for UNIX(图论--网络流最大流 Dinic)
题意:有N个插头,M个设备和K种转换器.要求插的设备尽量多,问最少剩几个不匹配的设备. 解法:给读入的各种插头编个号,源点到设备.设备通过转换器到插头.插头到汇点各自建一条容量为1的边.跑一次最大流就 ...
- POJ训练计划1459_Power Network(网络流最大流/Dinic)
解题报告 这题建模实在是好建.,,好贱.., 给前向星给跪了,纯dinic的前向星居然TLE,sad.,,回头看看优化,.. 矩阵跑过了.2A,sad,,, /******************** ...
- 网络流——最大流Dinic算法
前言 突然发现到了新的一年什么东西好像就都不会了凉凉 算法步骤 建残量网络图 在残量网络图上跑增广路 重复1直到没有增广路(注意一个残量网络图要尽量把价值都用完,不然会浪费建图的时间) 代码实现 #i ...
随机推荐
- mysql安装出错cannot create windows service for mysql.error:0
配置时最后一步出现不能启动mysql 解决成功的办法:[MySQL] Could not start the service MySQL 解决方法 安装mysql 5.1.33,在运行Server I ...
- 从HTTP 2.0想到的关于传输层协议的一些事
0.HTTP协议的历史 我也不知道... 1.关于HTTP 2.0 收到了订阅的邮件,头版是说HTTP 2.0的内容,我本人不是非常关注HTTP这一块儿.可是闲得无聊时也会瞟两眼的.HTTP 2.0的 ...
- UVA 1515 Pool construction 最大流跑最小割
Pool construction You are working for the International Company for Pool Construction, a constructio ...
- 关于懒加载中的self.和_
---恢复内容开始--- 在开发中,经常会用到懒加载,最常用的如加载一个数组 如图,在这个懒加载数组中有的地方用到了_array有的地方用到了self.array 原因是_array是直接访问,而se ...
- 20个非常有用的Java程序片段--转
原文地址:http://geek.csdn.net/news/detail/236591 下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = ...
- python2 与 python3 语法区别--转
原文地址:http://old.sebug.net/paper/books/dive-into-python3/porting-code-to-python-3-with-2to3.html 使用2t ...
- 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)
题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 输入输出格式 输入格式: 第一行一个整数 ...
- Android 对ScrollView滚动监听,实现美团、大众点评的购买悬浮效果
转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming),请尊重他人的辛勤劳动成果,谢谢! 随着移动互联网的快速发展,它已经和我们的生活息息相关了,在 ...
- SQL Server 检测到基于一致性的逻辑 I/O 错误
背景:新建DB_GZN 恢复数据库备份文件 执行: select * from VI_MPS_PAPLT 错误提示: 消息 824,级别 24,状态 2,第 2 行 SQL Serv ...
- Java之Foreach语句
Foreach是for语句的特殊简化版本,但任何时候的foreach语句都可以改写成for语句.Foreach语句在遍历数组等方面为程序员提供了很大的方便 语法如下: For(元素变量 x:遍历对象o ...