(网络流模板1)最大流(Dinic模板)

本文介绍了一道关于最大流问题的模板题目,使用Dinic算法来解决。内容涉及图的网络流概念,重点讲解了如何通过Dinic算法求解从源点s到汇点t的最大流量,数据规模限制为n≤100, m≤5000, c≤2^31-1。" 133559419,20038728,C++智能指针详解与应用,"['C++', '内存管理']
摘要由CSDN通过智能技术生成

A 最大流 (10 分)

这是一道模板题。

给定 n 个点,m 条边,给定每条边的容量,求从点 s 到点 t 的最大流。

输入格式:

第一行四个整数n,m,s,t。

接下来的 m 行,每行三个整数u,v,c,表示从 u 到 v,流量为 c 的一条边。

数据保证有 1≤n≤100,1≤m≤5000,0≤c≤2​31​​−1。

输出格式:

输出点 s 到点 t 的最大流。

输入样例:

7 14 1 7
1 2 5
1 3 6
1 4 5
2 3 2
2 5 3
3 2 2
3 4 3
3 5 3
3 6 7
4 6 5
5 6 1
6 5 1
5 7 8
6 7 7

输出样例:

14

 这个是网络流的模板题,网络流主要是计算一个图的最大流量,一条路径的流量取决于这条路径所有边中最小的容量,最终计算的能从起点流到终点的最大流量为各路径流量之和

完整代码:

#include <bits/stdc++.h>
#define int long long
const int inf=0x3f3f3f3f;
const int maxn=3e5+10;
using namespace std;
typedef struct edge
{
    int first,c,next;//fisrt为边的终点,next为同起点的上一条边的编号
}edg;
edg e[maxn<<1];//e[]是代表边的结构体,first和next分别为该边的终点和与该边同起点的上一条边的编号,c为该边的容量
int n,m,s,t,h
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值