(网络流) Island Transport --Hdu -- 4280
链接:
http://acm.hdu.edu.cn/showproblem.php?pid=4280
源点是West, 汇点是East, 用Dinic带入求就好了
代码:要用c++提交
#pragma comment(linker, "/STACK:102400000,102400000") ///手动开大栈区
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stack>
using namespace std; #define N 100005
#define INF 0x3fffffff struct node {int v, flow, next;} a[N<<]; int Layer[N], Head[N], cnt, n, m; void Init()
{
cnt = ;
memset(Head, -, sizeof(Head));
} void Add(int u, int v, int flow)
{
a[cnt].v = v;
a[cnt].flow = flow;
a[cnt].next = Head[u];
Head[u] = cnt++;
} bool BFS(int Start, int End)
{
queue<int>Q;
Q.push(Start); memset(Layer, , sizeof(Layer));
Layer[Start] = ; while(Q.size())
{
int u = Q.front(); Q.pop(); if(u==End) return true; for(int i=Head[u]; i!=-; i=a[i].next)
{
int v = a[i].v; if(!Layer[v] && a[i].flow)
{
Layer[v] = Layer[u] + ;
Q.push(v);
}
}
}
return false;
}
int DFS(int u, int MaxFlow, int End)
{
if(u==End) return MaxFlow; int uflow=; for(int i=Head[u]; i!=-; i=a[i].next)
{
int v = a[i].v;
if(Layer[v]==Layer[u]+ && a[i].flow)
{
int flow = min(a[i].flow, MaxFlow-uflow);
flow = DFS(v, flow, End); a[i].flow -= flow;
a[i^].flow += flow;
uflow += flow; if(uflow==MaxFlow) break;
}
} if(uflow==) Layer[u] = ; return uflow;
}
int Dinic(int Start, int End)
{
int MaxFlow=; while(BFS(Start, End)==true)
MaxFlow += DFS(Start, INF, End); return MaxFlow;
} int main()
{
int t;
scanf("%d", &t);
while(t--)
{
int i, u, v, flow, East=-INF, West=INF, Start, End, x, y; scanf("%d%d", &n, &m); Init();
for(i=; i<=n; i++)
{
scanf("%d%d", &x, &y);
if(West > x)
{
West = x;
Start = i;
}
if(East < x)
{
East = x;
End = i;
}
} for(i=; i<=m; i++)
{
scanf("%d%d%d", &u, &v, &flow);
Add(u, v, flow);
Add(v, u, flow);
} printf("%d\n", Dinic(Start, End));
}
return ;
}
(网络流) Island Transport --Hdu -- 4280的更多相关文章
- G - Island Transport - hdu 4280(最大流)
题意:有N个岛屿,M条路线,每条路都连接两个岛屿,并且每条路都有一个最大承载人数,现在想知道从最西边的岛到最东面的岛最多能有多少人过去(最西面和最东面的岛屿只有一个). 分析:可以比较明显的看出来是一 ...
- HDU 4280 Island Transport(网络流,最大流)
HDU 4280 Island Transport(网络流,最大流) Description In the vast waters far far away, there are many islan ...
- HDU 4280 Island Transport
Island Transport Time Limit: 10000ms Memory Limit: 65536KB This problem will be judged on HDU. Origi ...
- Hdu 4280 Island Transport(最大流)
Island Transport Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- HDU 4280 Island Transport(无向图最大流)
HDU 4280:http://acm.hdu.edu.cn/showproblem.php?pid=4280 题意: 比较裸的最大流题目,就是这是个无向图,并且比较卡时间. 思路: 是这样的,由于是 ...
- HDU 4280 Island Transport(dinic+当前弧优化)
Island Transport Description In the vast waters far far away, there are many islands. People are liv ...
- Island Transport
Island Transport http://acm.hdu.edu.cn/showproblem.php?pid=4280 Time Limit: 20000/10000 MS (Java/Oth ...
- HDU4280:Island Transport(最大流)
Island Transport Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- HDU 4280 ISAP+BFS 最大流 模板
Island Transport Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
随机推荐
- TEXT 3 Food firms and fat-fighters
TEXT 3 Food firms and fat-fighters 食品公司与减肥斗士 Feb 9th 2006 From The Economist Global Agenda Five lead ...
- 【342】Linear Regression by Python
Reference: 用scikit-learn和pandas学习线性回归 首先获取数据存储在 pandas.DataFrame 中,获取途径(CSV 文件.Numpy 创建) 将数据分成 X 和 y ...
- 提交给mysql java驱动的优化下个版本要发布了^_^
Unsubscribe from updates to this bug at: https://bugs.mysql.com/77681 Updated by: Daniel che chung S ...
- CentOS 6.3安装配置supervisor进程管理工具
1. Supervisor是一个C/S系统,它可以在类unix操作系统让用户来监视和控制后台服务进程的数量,一个很重要的功能就是监控服务器的主要后台进程,并在出现问题是自动重启. 2. 根据服务器上的 ...
- Android中注解的使用
如果你是一名安卓开发者,你也一定听过大名鼎鼎的网络请求框架Retrofit.它将网络请求的方式以注解的形式展现,极大的提高了代码的可读性,同时网络请求集中写在一个interface中提高了代码的可维护 ...
- Python oct() 函数
Python oct() 函数 Python 内置函数 描述 oct() 函数将一个整数转换成8进制字符串. 语法 oct 语法: oct(x) 参数说明: x -- 整数. 返回值 返回8进制字符 ...
- MyBatis高级查询
-------------------------siwuxie095 MyBatis 高级查询 1.MyBatis 作为一个 ORM 框架,也对 SQL 的高级查询做了支持, MyBatis 高级查 ...
- 【校招面试 之 C/C++】第10题 C++不在构造函数和析构函数中调用虚函数
1.不要在构造函数中调用虚函数的原因 在概念上,构造函数的工作是为对象进行初始化.在构造函数完成之前,被构造的对象被认为“未完全生成”.当创建某个派生类的对象时,如果在它的基类的构造函数中调用虚函数, ...
- SweetAlert2 弹窗
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- postman 使用 - 连接不到接口