题目描述

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

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

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

输出格式:

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

最大流模板题。

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int oo=0x3f3f3f3f;
int m,n,s,t,fir[10010],ne[200010],to[200010],w[200010],f[10010],que[100010];
int rd()
{int x=0;char c=getchar();while (c<'0'||c>'9') c=getchar();while (c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}return x;
}
void add(int num,int u,int v,int x)
{ne[num]=fir[u];fir[u]=num;to[num]=v;w[num]=x;
}
void init()
{int i,u,v,x;n=rd();m=rd();s=rd();t=rd();for (i=1;i<=m;i++){u=rd();v=rd();x=rd();add(i*2,u,v,x);add(i*2+1,v,u,0);}
}
bool find()
{int hd=1,tl=1,u,v,i;memset(f,0,sizeof(f));f[s]=1;que[1]=s;while (hd<=tl){u=que[hd++];for (i=fir[u];i;i=ne[i])if (w[i]&&!f[v=to[i]]){f[v]=f[u]+1;que[++tl]=v;}}return f[t];
}
int dfs(int u,int lim)
{if (u==t) return lim;int i,v,x;int ret=0;for (i=fir[u];i&&ret<lim;i=ne[i])if (w[i]&&f[v=to[i]]==f[u]+1){x=dfs(v,min(lim-ret,w[i]));w[i]-=x;w[i^1]+=x;ret+=x;}if (!ret) f[u]=0;return ret;
}
int main()
{init();int x,ans=0;while (find())while (x=dfs(s,oo))ans+=x;printf("%d\n",ans);
}

洛谷3376 网络最大流相关推荐

  1. 洛谷P3376 网络最大流

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

  2. sscanf小技巧-洛谷P7911 网络连接

    sscanf小技巧-洛谷P7911 网络连接 序言 本题解来源:本蒟蒻上课摸鱼 (别学我) 最近学了一个挺好用的函数--sscanf(),结合洛谷P7911 网络连接讲一下. (点击查看题目) 推荐几 ...

  3. 洛谷 - P4014 分配问题(费用流/KM)

    题目链接:点击查看 题目大意:给出n个工人和n个工作,每个人做每一个工作的效率都是不同的,问如何分配能让效率最低/最高 题目分析:最小费用最大流和最大费用最大流的模板题,直接套模板跑答案就行了,没有任 ...

  4. 洛谷 - P4015 运输问题(费用流)

    题目链接:点击查看 题目大意:有n个卖家和m个买家,每个卖家会卖ai个物品,每个买家会买bi个物品,每个卖家向每个卖家卖东西会有一定的代价,问如何匹配才能让代价最小/最大 题目分析:和上一道题大同小异 ...

  5. 洛谷3171 网络吞吐量(网络流)

    t开成n结果cur赋值的时候也只赋值到t令人智熄 [题目分析] 好吧我承认这个错误真的呵呵........ 题目有那~~~~~么长,然后画画图这道题就基本看出正解了,再一看数据范围,n<=500 ...

  6. 洛谷 P3128 [USACO15DEC]最大流Max Flow

    题意简述 给定一颗树,每次操作可以使两个点最短路上的点+1,求最大的点 题解思路 树上差分 若操作u, v,则++f[u], ++f[v], --f[lca(u, v)], --f[father(lc ...

  7. 洛谷P2472-网络最大流(点的拆分)

    题目链接-P2472 还是 点的拆分,把所有点拆为两个点,其连接容量为点的数值,然后建图求解即可 #include <iostream> #include <cstdio> # ...

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

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

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

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

最新文章

  1. 数据结构与算法实验祝恩_《数据结构与算法》实验教学大纲
  2. Spring MVC 处理异常的3种方式
  3. linux bash shell 判断变量是否在列表中
  4. Tomcat部署项目的几种常见方式
  5. (转)64bit上安装32位oracle 10 g出现错误:无法定位承诺工序输入点 getprocessimagifilenamew 于动态链接库PSAPI.DLL...
  6. C# dynamic 类型用法举例
  7. pythongui显示图片_opencv2.4.13+python2.7学习笔记--opencv中的Gui特性--图片:读图像,显示图像,保存图像...
  8. 帷幕的帷是什么意思_公务员最低服务年限是什么意思,被录用后辞职,还能考公务员吗...
  9. js 实现ReplaceAll 的方法
  10. “编程能力差,90%输在了这点上!”阿里巴巴工程师:其实都是瞎努力!
  11. Xib和StoryBoard的区别
  12. PHP的XML Parser(转)
  13. 22个月无休,华为36岁工程师在肯尼亚过劳猝死!
  14. 2022年调味品行业研究报告
  15. gitlab安装后出现的web IDE显示报错问题
  16. ping不通百度 ubuntu_Ubuntu不可以ping百度,但是可以ping通其ip
  17. Ubuntu中添加新硬盘
  18. edge使用html2协议,Legacy Microsoft Edge developer documentation
  19. 2020年春分,新的开始
  20. 错误 C4996 inet_addr: Use inet_pton() or InetPton() instead or defin

热门文章

  1. AdobeAfterEffectPlug-in_JSX_AE插件
  2. 使用anaconda编程c语言,使用anaconda和conemu打造Python编程环境
  3. win7此更新不适用计算机,更新win7提示“此更新不适用于您的计算机”
  4. java如何做一个奖牌榜_编写一个成绩统计的java程序。
  5. IOS 解决视频全屏播放问题
  6. [127]正则表达式匹配身份证 电话号码 邮箱 住宅电话 邮编等
  7. Win11暂停更新点不了怎么办?Win11暂停更新是灰色的如何解决?
  8. 基于步进电机控制的电梯
  9. 个人总结ppt里的一张幻灯片
  10. 控制算法学习 四、扩展卡尔曼滤波EKF