题干:

如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。

输入输出格式

输入格式:

第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。

接下来M行每行包含三个正整数ui、vi、wi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi)

输出格式:

一行,包含一个正整数,即为该网络的最大流。

输入输出样例

输入样例#1: 复制

4 5 4 3
4 2 30
4 3 20
2 3 20
2 1 30
1 3 40

输出样例#1: 复制

50

解题报告:

RT。

AC代码:

#include<cstring>
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
int n,m;
int tot;
struct Edge {int to,ne,w;
} e[100005 * 2];
int head[10005];
int st,ed;
int dis[10050],q[10005];//一共多少个点跑bfs,dis数组和q数组就开多大。
void add(int u,int v,int w) {e[++tot].to=v;e[tot].w=w;e[tot].ne=head[u];head[u]=tot;
}
bool bfs(int st,int ed) {memset(dis,-1,sizeof(dis));int front=0,tail=0;q[tail++]=st;dis[st]=0;while(front<tail) {int cur = q[front];front++;for(int i = head[cur]; i!=-1; i = e[i].ne) {if(e[i].w&&dis[e[i].to]<0) {q[tail++]=e[i].to;dis[e[i].to]=dis[cur]+1;}}}if(dis[ed]==-1) return 0;return 1;
}
int dfs(int cur,int f) {if(cur==ed) return f;int w,flow=0;for(int i = head[cur]; i!=-1; i = e[i].ne) {        if(e[i].w&&dis[e[i].to]==dis[cur]+1) {w=f-flow;w=dfs(e[i].to,min(w,e[i].w));e[i].w-=w;e[i^1].w+=w;flow+=w;if(flow==f) return f;}        }if(!flow) dis[cur]=-1;return flow;
}
int dinic() {int ans = 0;while(bfs(st,ed)) ans+=dfs(st,0x7fffffff);return ans;
}
int main() {cin>>n>>m>>st>>ed;tot=1;for(int i = 1; i<=n; i++) head[i] = -1;for(int a,b,c,i = 1; i<=m; i++) {scanf("%d%d%d",&a,&b,&c);add(a,b,c);add(b,a,0);}      printf("%d\n",dinic());               return 0;
}

得出结论:如果是^1的话,那就必须tot=1,然后存边的时候++tot这样。

但是要是i和i+1的话,那就tot=1或者tot=2都可以了。

【洛谷 - P3376 】【模板】网络最大流相关推荐

  1. 【洛谷P3376】网络最大流【网络流】

    分析 网络流算法本身是之前学过的,今天拿出来复习打个板子. 最原始的思路应该是搜索每一条路,每次进行增广的操作,知道不能增广为止.显然,这种思路复杂度比较高. 如何进行优化?就是dinic算法.上面那 ...

  2. 洛谷P1262 间谍网络题解

    洛谷P1262 间谍网络题解 题目大意 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果 A 间谍手中掌握着关于 B 间谍的犯罪证据,则称 A 可以揭发 B.有些间谍收受贿赂,只要 ...

  3. 洛谷P3376 【模板】网络最大流

    P3376 [模板]网络最大流 题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点 ...

  4. 洛谷 P3376 【模板】网络最大流

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...

  5. 洛谷P3376 网络最大流

    不是讲网络流,就是存个板子 另外我的Dinic跑得比EK慢一倍可还行( 附两份比较好的教程,均来自洛谷日报 EK\sf \color{blue}EKEK Dinic\sf \color{blue}Di ...

  6. 洛谷P3980 志愿者招募——费用流

    洛谷P3980 [NOI2008]志愿者招募--费用流 题目介绍 题目描述 输入格式 输出格式 测试样例 题解 代码 题目介绍 题目描述 链接: 传送门. 申奥成功后,布布经过不懈努力,终于成为奥组委 ...

  7. 【ybt金牌导航3-2-1】【luogu P3376】网络最大流【Dinic算法】

    网 络 最 大 流 网络最大流 网络最大流 题目链接:ybt金牌导航3-2-1 / luogu P3376 题目 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入 第一行包含四个正整数 ...

  8. 专题·树链剖分【including 洛谷·【模板】树链剖分

    初见安~~~终于学会了树剖~~~ [兴奋]当初机房的大佬在学树剖的时候我反复强调过:"学树剖没有前途的!!!" 恩.真香. 一.重链与重儿子 所谓树剖--树链剖分,就是赋予一个链的 ...

  9. 洛谷·【模板】点分树 | 震波【including 点分树

    初见安-这里是传送门:洛谷P6329 [模板]点分树 | 震波 一.点分树 其实你会点分治的话,点分树就是把点分治时的重心提出来重新连城一棵树. 比如当前点是u,求出子树v的重心root后将root与 ...

最新文章

  1. 必读!53个Python经典面试题详解
  2. shell中变量的替换
  3. Google SRE 读书笔记 扒一扒SRE用的那些工具
  4. mysql主备切换 自动_核电生产管理信息系统EAM完成首次备用环境切换演练
  5. 读《编程珠玑》 (四)
  6. linux系列的命令补充
  7. Python 面向对象 —— 静态方法和类方法
  8. [渝粤教育] 重庆电子工程职业学院 物联网工程导论 参考 资料
  9. java 遍历 Map 的六种方式 学习笔记
  10. 移动机器人路径规划算法综述(二)
  11. android编程歌词显示,Android 音乐播放器实现歌词显示
  12. Python 国产库推荐:musicpy
  13. 经纬度(度十进制分)—— 度分秒 转换
  14. 大数据的四个典型特征
  15. Serekh简介:新资产包,埋藏的回忆,第2卷
  16. 本地的html文件怎么运行在本地服务器上
  17. 在那个时候根本没有计算机房,王德厚:我们现在的写作环境与王瑶先生那个时候没有根本区别...
  18. 中国境内哪个chatGPT最好用
  19. 【WinForm】TextBox只能输入数字
  20. 恶劣天气中如何拍摄360全景图片?

热门文章

  1. 几个颇有创意的网站推广方法(推荐)
  2. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]49.描述在IPsec和TLS后的基本想法
  3. Java学习笔记11-2——Spring5
  4. 【发现问题】Java中PrintWriter和BufferedWriter的区别
  5. 企业是否应该实现对客户需求的快速响应_互联网企业的数据化迭代和数据化应用...
  6. 爬楼梯(递归——奇数步,偶数步扩展)
  7. java mongodb 关闭连接_如何在mongodb上使用java驱动程序保持连接池关闭?
  8. python如何输入空行_在python中,如何在接受用户输入时跳过空行?
  9. 丁丁打折网卷能用吗_微信群控还能用吗?现在什么群控还能使用吗?
  10. 前端js获取图片大小 扩展名_前端 JS 获取 Image 图像 宽高 尺寸