hdu 4280 最大流
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4280
- #pragma comment(linker, "/STACK:1024000000,1024000000")
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- #include<algorithm>
- #include<queue>
- using namespace std;
- const int maxn = ;
- const int maxe = ;
- const int INF = 0x3f3f3f;
- struct Edge{
- int v,flow,cap;
- int next;
- Edge(int v=,int flow=,int cap=,int next=):
- v(v) , flow(flow), cap(cap), next(next){}
- };
- struct Dinic{
- Edge edges[maxe];
- int head[maxn],cnt;
- int cur[maxn];
- int d[maxn];
- int vis[maxn];
- int s,t;
- void init(){
- memset(head,-,sizeof(head));
- cnt = ;
- }
- void addedge(int u,int v,int cap){
- edges[cnt] = Edge(v,,cap,head[u]);
- head[u] = cnt++;
- edges[cnt] = Edge(u,,cap,head[v]);
- head[v] = cnt++;
- }
- bool bfs(){
- memset(vis,,sizeof(vis));
- queue<int> Q;
- Q.push(s);
- vis[s] = true;
- d[s] = ;
- while(!Q.empty()){
- int u = Q.front(); Q.pop();
- for(int i=head[u];i!=-;i=edges[i].next){
- Edge& e = edges[i];
- if(!vis[e.v] && e.cap > e.flow){
- vis[e.v] = true;
- d[e.v] = d[u] + ;
- Q.push(e.v);
- }
- }
- }
- return vis[t];
- }
- int dfs(int u,int res){
- if(u == t || res == ) return res;
- int flow = ,f;
- for(int& i=cur[u];i!=-;i=edges[i].next){
- Edge& e = edges[i];
- if(d[e.v] == d[u] + && (f = dfs(e.v,min(res,e.cap-e.flow))) > ){
- e.flow += f;
- edges[i^].flow -= f;
- flow += f;
- res -= f;
- if(res == ) break;
- }
- }
- return flow;
- }
- int MaxFlow(int s_,int t_){
- s = s_; t = t_;
- int flow = ;
- while(bfs()){
- for(int i=;i<=maxn;i++) cur[i] = head[i];
- flow += dfs(s,INF);
- }
- return flow;
- }
- }solver;
- int main()
- {
- freopen("E:\\acm\\input.txt","r",stdin);
- int T;
- cin>>T;
- while(T--){
- solver.init();
- int N,M;
- cin>>N>>M;
- int maxx=-INF,minx=INF;
- int s,t;
- for(int i=;i<=N;i++){
- int x,y;
- scanf("%d %d",&x,&y);
- if(maxx < x){
- maxx = x;
- t = i;
- }
- if(minx > x){
- minx = x;
- s = i;
- }
- }
- for(int i=;i<=M;i++){
- int a,b,c;
- scanf("%d %d %d",&a,&b,&c);
- solver.addedge(a,b,c);
- }
- printf("%d\n",solver.MaxFlow(s,t));
- }
- }
hdu 4280 最大流的更多相关文章
- hdu 4280 最大流sap
模板套起来 1 5 7 //5个结点,7个边 3 3 //坐标 3 0 3 1 0 0 4 5 1 3 3 //相连的结点和流 2 3 4 2 4 3 1 5 6 4 5 3 1 4 4 3 4 2 ...
- hdu 4280 最大流 sap模板
给你岛的坐标求最西边到最东边的最大流 /* 最大流模板 sap */ #include<stdio.h> #include<string.h> #include<algo ...
- HDU 4280 Island Transport(网络流,最大流)
HDU 4280 Island Transport(网络流,最大流) Description In the vast waters far far away, there are many islan ...
- HDU 4280 Island Transport(无向图最大流)
HDU 4280:http://acm.hdu.edu.cn/showproblem.php?pid=4280 题意: 比较裸的最大流题目,就是这是个无向图,并且比较卡时间. 思路: 是这样的,由于是 ...
- HDU 1532 最大流入门
1.HDU 1532 最大流入门,n个n条边,求第1点到第m点的最大流.只用EK做了一下. #include<bits/stdc++.h> using namespace std; #pr ...
- G - Island Transport - hdu 4280(最大流)
题意:有N个岛屿,M条路线,每条路都连接两个岛屿,并且每条路都有一个最大承载人数,现在想知道从最西边的岛到最东面的岛最多能有多少人过去(最西面和最东面的岛屿只有一个). 分析:可以比较明显的看出来是一 ...
- HDU 4280 ISAP+BFS 最大流 模板
Island Transport Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- Hdu 4280 Island Transport(最大流)
Island Transport Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Other ...
- Island Transport 【HDU - 4280】【最大流Dinic】
题目链接 可以说是真的把时间卡爆了,不断的修改了好多次之后才A了,一直T一直T,哭了…… 可以说是很练时间优化了,不断的改,不断的提交,最后竟然是改了Dinic中的BFS()中,我们一旦搜索到了T之后 ...
随机推荐
- java开发规范总结_代码注释规范
规范需要平时编码过程中注意,是一个慢慢养成的好习惯 1.基本规则 1.注释应该使代码更加清晰易懂 2.注释要简单明了,只要提供能够明确理解程序所必要的信息就可以了.如果注释太复杂说明程序需要修改调 ...
- 网络解析之XML及JSON
首先要加入类库GDataXMLNode和JSON 解析本地文件Students.txt <students> <student> <name>汤姆 </nam ...
- iOS崩溃报告获取二
// // JKExceptionHandler.h // JKExceptionHandler // // Created by Jack on 16/9/7. // Copyright © 201 ...
- gpfdist工具的初级使用
gpfdist工具的使用主要两步: 第一步:打开gpfdist服务: gpfdist -d /home/admin -p -l /tmp/gpfdist.log & 参数解释: -d 数据文件 ...
- 在win10 64位下编译,提示[C++ Error] E2075 Incorrect project override option: (x86)\borland\cbuilder6\lib\vcl60.csm
options->compiler 右边有个file name 改下就好了从$(BCB)\lib\vcl60.csm 改为c:\PROGRA~1\borland\CBUILD~1\lib\vc ...
- ibatis面试笔记
ibatis是在结果集与实体类之间进行映射hibernate是在数据库与实体类之间进行映射Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序 ...
- 帝国cms 列表页分页样式修改美化【1】
[1]自己修改帝国cms默认的分页样式(css),这样做的好处是你不用去改动帝国的核心文件,方便以后升级. [2]自己动手去修改帝国的分页(php+css),帝国的分页在e>class>下 ...
- VC皮肤库之duilib
首先是个国产的开源 的,directui 界面库,开放,共享,惠众,共赢,遵循bsd协议,可以免费用于商业项目,目前支持Windows 32 .Window CE.Mobile等平台. Duilib ...
- golang_protobuf环境搭建
搭建golang使用rotobuf使用环境 一 安装protobuf: 1 下载protobuf源码:https://github.com/google/protobuf 2 进入源码目录: ./au ...
- 【 UVALive - 5095】Transportation(费用流)
Description There are N cities, and M directed roads connecting them. Now you want to transport K un ...