博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AC日记——网络最大流 洛谷 P3376
阅读量:6338 次
发布时间:2019-06-22

本文共 1145 字,大约阅读时间需要 3 分钟。

题目描述

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

输入输出格式

输入格式:

 

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

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

 

输出格式:

 

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

 

输入输出样例

输入样例#1:
4 5 4 34 2 304 3 202 3 202 1 301 3 40
输出样例#1:
50

说明

时空限制:1000ms,128M

数据规模:

对于30%的数据:N<=10,M<=25

对于70%的数据:N<=200,M<=1000

对于100%的数据:N<=10000,M<=100000

样例说明:

题目中存在3条路径:

4-->2-->3,该路线可通过20的流量

4-->3,可通过20的流量

4-->2-->1-->3,可通过10的流量(边4-->2之前已经耗费了20的流量)

故流量总计20+20+10=50。输出50。

 

思路:

  裸最大流;

 

来,上代码:

#include 
#include
#define LL long long#define maxn 10005#define maxm 100005using namespace std;struct EdgeType { LL v,e,f;};struct EdgeType edge[maxn<<5];LL if_z,n,m,s,t,cnt=1,head[maxn],deep[maxn];LL que[maxn<<9],h,tail,ans;char Cget;inline void in(LL &now){ now=0,if_z,Cget=getchar(); while(Cget>'9'||Cget<'0') { if(Cget=='-') if_z=-1; Cget=getchar(); } while(Cget>='0'&&Cget<='9') { now=now*10+Cget-'0'; Cget=getchar(); }}bool BFS(){ for(LL i=1;i<=n;i++) deep[i]=-1; h=0,tail=1,deep[s]=0,que[h]=s; while(h

 

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6502824.html

你可能感兴趣的文章
客户端收发邮件报错:-ERR connection refused
查看>>
U盘病毒原理分析和解决方法
查看>>
谈谈系统架构这个东西
查看>>
thunderbird 导入通讯录乱码问题解决
查看>>
[.Net线程处理系列]专题四:线程同步
查看>>
yum安装crontab
查看>>
JVM初探- 内存分配、GC原理与垃圾收集器
查看>>
Ruby和SHELL中如何遍历指定目录的文件
查看>>
LevelDB
查看>>
CentOS7下安装mysql5.6修改字符集为utf8并开放端口允许远程访问
查看>>
初尝Mcafee之在ePO中进行策略和客户端任务设置【06】
查看>>
C#进阶系列——WebApi 跨域问题解决方案:CORS
查看>>
你真的会玩SQL吗?让人晕头转向的三值逻辑
查看>>
Unity 脚本的未来发展
查看>>
hdu 2055 An easy problem (java)
查看>>
JQuery:JQuery捕获HTML
查看>>
js自动闭合html标签,自动补全html标记
查看>>
cpu进程调度---RT Throttling【转】
查看>>
在MapGuide 的Fusion Viewer的选择面板中显示超链接
查看>>
CentOS7下单机部署RabbltMQ环境的操作记录
查看>>