nyoj_323:Drainage Ditches(网络流入门)
网络流入门@_@,此处本人用的刘汝佳的Dinic模板
#include<bits/stdc++.h> using namespace std; const int INF = 0x3f3f3f3f; struct Edge { int from,to,cap,flow; }; int n,s,t,m; struct Dinic { , M = ; //N对应点数 vector<Edge> edges; vector<int> G[N]; bool vis[N]; int d[N]; int cur[N]; void init() { ; i<=n; i++) G[i].clear(); edges.clear(); } void AddEdge(int from,int to,int cap) { edges.push_back((Edge) { }); edges.push_back((Edge) { to,, }); int w=edges.size(); G[); G[to].push_back(w-); } bool bfs() { memset(vis,,sizeof(vis)); queue<int>Q; d[s] = ; Q.push(s); vis[s]=; while (!Q.empty()) { int x = Q.front(); Q.pop(); ; i<G[x].size(); i++) { Edge e=edges[G[x][i]]; if (!vis[e.to]&&e.cap>e.flow) { vis[e.to]=; d[e.to] = d[x] + ; Q.push(e.to); } } } return vis[t]; } int dfs(int x, int a) { ) return a; ,f; for (int&i = cur[x] ; i<G[x].size(); i++) { Edge& e=edges[G[x][i]]; &&(f=dfs(e.to,min(a,e.cap-e.flow)))>) { e.flow+=f; edges[G[x][i]^].flow-=f; //流量增大意味着净容量减少 flow+=f; //反向边容量表示了正向边的流量 a -= f; )break; } } return flow; } int Maxflow(int s, int t) { ; while (bfs()) { memset(cur,,sizeof(cur)); flow += dfs(s, INF); } // for(int i=1;i<=n;i++) // for(int j=0;j<G[i].size();j++) // printf("from:%d to:%d cap:%d flow:%d\n",i,edges[G[i][j]].to,edges[G[i][j]].cap,edges[G[i][j]].flow); return flow; } } g; int main() { while(~scanf("%d%d",&m,&n)) { g.init(); s=; t=n; ; i<m; i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); g.AddEdge(a,b,c); } printf("%d\n",g.Maxflow(s,t)); } }
nyoj_323:Drainage Ditches(网络流入门)的更多相关文章
- POJ 1273 Drainage Ditches (网络流Dinic模板)
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...
- POJ 1273:Drainage Ditches 网络流模板题
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 63339 Accepted: 2443 ...
- HDU1532 Drainage Ditches 网络流EK算法
Drainage Ditches Problem Description Every time it rains on Farmer John's fields, a pond forms over ...
- USACO 4.2 Drainage Ditches(网络流模板题)
Drainage DitchesHal Burch Every time it rains on Farmer John's fields, a pond forms over Bessie's fa ...
- NYOJ 323 Drainage Ditches 网络流 FF 练手
Drainage Ditches 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Every time it rains on Farmer John's fields, ...
- POJ 1273 Drainage Ditches 网络流 FF
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 74480 Accepted: 2895 ...
- Drainage Ditches~网络流模板
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...
- poj 1273 Drainage Ditches 网络流最大流基础
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 59176 Accepted: 2272 ...
- POJ-1273Drainage Ditches(网络流入门题,最大流)
Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This ...
随机推荐
- APUE-文件和目录(四)文件系统
一个命令 mkfs 讲文件系统前先介绍一个用于创建文件系统的命令: mkfs mkfs [options] [-t type fs-options] device [size] 描述 mkfs用来在设 ...
- 亲测可行,AndroidStudio 究竟如何配置gradle
一.你不想看到的 Gradle Build Running 话说在天朝当程序员也是很不容易的,不管是查阅资料还是下载东西,很多时候你会发现自己上网姿势不对,当然对大多数程序员来说,这都不是事儿.这次重 ...
- 避免循环做SQL操作
经常犯的错误是把一个SQL 操作放置到一个循环中, 这就导致频繁的访问数据库,更重要的是, 这会直接导致脚本的性能低下.以下的例子, 你能够把一个循环操作重置为一个单一的SQL语句. foreach ...
- mysql 左连接 右连接 内链接
一般所说的左连接,右连接是指左外连接,右外连接.做个简单的测试你看吧.先说左外连接和右外连接:[TEST1@orcl#16-12月-11] SQL>select * from t1;ID NAM ...
- c#中的委托和c++中的bind/function对比
在c++中,如果要实现这样一个功能,比如定时器,在指定的时间执行指定的函数,接口可以采用如下的设计 uint64_t addtimer(uint64_t t, std::function<voi ...
- [leetcode-504-Base 7]
Given an integer, return its base 7 string representation. Example 1: Input: 100 Output: "202&q ...
- ajax数据请求5(php格式)
ajax数据请求5(php格式): <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...
- 在线SVN仓库实现:金山快盘+TortoiseSVN(Win)+SCPlugin(Mac)
前段时间一直在研究SVN在线托管,也尝试了网上推荐的免费托管网站. 但毕竟是是免费的,还是要受到比如空间大小.私有性等这样那样的限制,感觉有些麻烦. 而且,比较心疼自己在本地开发的时候积累的更新日志, ...
- HybridApp Exception
HybridApp Exception [创建安卓虚拟机失败]CPU acceleration status:HAXM must be updated(version 1.1.1<6.0.1) ...
- python yield from 语法
python yield from 语法 yield语法比较简单, 教程也很多 , yield from的中文讲解很少 , python官网是这样解释的 PEP 380 adds the yield ...