【模板】网络最大流

网络流模板-------最大流模板 网络流模板 一.EK算法 优点:模板简单,使用方便 缺点:时间复杂度较高 存图:用邻接矩阵存图 算法详解 //EK算法模板(s为源点,t为汇点,函数返回值为最大流) //e为邻接矩阵 //p储存路径,a用来计算路径 int EK(int s,int t) { queue q; int p[MAXN*2],a[MAXN*2]; int f=0; 阅读详情
题目描述:点击进入
思路

最大流模板(小蓝书)(未完待续~~~)

代码
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
typedef long long ll;
const int maxn=1e4+10;
struct node
{
    int to;
	int next;
	int val;
}edge[maxn];
int head[maxn],tot;
void add(int u,int v,int val)//建边 
{
    edge[tot].to=v;
	edge[tot].val=val;
    edge[tot].next=head[u];
	head[u]=tot++;
}
int deep[maxn];//记录深度 
int cur[maxn];//当前弧优化 
bool vis[maxn];
int n,m;
ll res;
int s;// 源点:只有流出去的点
int t;// 汇点:只有流进来的点
int dfs(int pos/*当前点*/,int flow)//dfs找增广路
{
    if(pos==t) return flow;
    int rest=flow,k,i;
    //i=cur[pos]当前弧优化 
    for(i=cur[pos];i!=-1&&rest;i=edge[i].next)
    {
    	int v=edge[i].to;
        int val=edge[i].val;
        if(deep[v]==deep[pos]+1&&val)
        {
            k=dfs(v,min(val,rest));//递归求最小值
            if(!k) deep[v]=0;//剪枝,去掉增广完毕的点 
                //回溯的时候修改反向边权值和正向边权值
            edge[i].val-=k;//修改反正向边权值
            edge[i^1].val+=k;//异或修改反向边
            rest-=k; 
        }
	}
	cur[pos]=i;
    return flow-rest;
}
bool bfs()//bfs处理深度 
{
	memset(deep,0,sizeof(deep));
    deep[s]=1;
    queue<int>q; 
    q.push(s);
    cur[s]=head[s];
    while(q.size())
    {
        int now=q.front();
		q.pop();
		for(int i=head[now];i!=-1;i=edge[i].next)
		{
			int v=edge[i].to;
            if(edge[i].val&&!deep[v])
            {
            	q.push(v);
            	cur[v]=head[v];
                deep[v]=deep[now]+1;
				if(v==t) return 1;
            }
		}
    }
    return 0;
}
void dinic()
{
	while(bfs())
        res+=dfs(s,0x3f3f3f3f);
}
int main()
{
	memset(head,-1,sizeof(head));
    scanf("%d%d%d%d",&n,&m,&s,&t);
    for(int i=1;i<=m;i++)//建图
    {
        int u,v,w;
        scanf("%d%d%d",&u,&v,&w);
        add(u,v,w);//正边 
		add(v,u,0);//反边 
		//注意一定要连续塞进去
    }
    dinic();
    printf("%lld\n",res);//输出答案
	return 0;
}
【网络流】【模板】最小费用最大流 给出一个网络图,以及其源点和汇点,每条边已知其最大流量和单位流量费用,求出其网络最大流和在最大流情况下的最小费用。 阅读详情

相关推荐

使用嘉立创绘制STM32F103T8C6最小系统板

使用嘉立创EDA绘制一个属于自己的STM32最小系统板

weixin_67887035的博客 1万+

算法模板(8):网络流(1):最大流

基本概念0≤fuv≤Cuvc′uvcuv−fuvc′uvfvuv→u∣f′∣0∣f′∣STcstu∈S∑​v∈T∑​cuvfstu∈S∑​v∈T∑​fuv−u∈T∑​v∈S∑​fuvfST<=cSTXYfXYu∈X∑​v∈Y∑​fuv−u∈X∑​v∈Y∑​fvufX。

qq_45812711的博客 948

别再手动巡检了!vRealize Operations Manager 8.x 自动化报告配置全攻略(附模板下载)

本文详细介绍了如何利用vRealize Operations Manager 8.x实现自动化巡检报告配置,大幅提升虚拟化运维效率。通过模板定制、智能调度和自动分发等功能,帮助运维团队告别手动生成报告的繁琐工作,实现90%以上的时间节省。文章还提供了实用的配置技巧和最佳实践,助力企业构建高效的自动化报告系统。

weixin_33806859的博客 297

P3376 【模板】网络最大流(EK算法)

网络流真的很有意思,写最大流前必须要理解清楚增广等相关概念,推荐。③:重复①和②步骤,直到找不到增广路,则此时得到最大流。oi wiki的讲解,潜心钻研一下相关证明。的增广路,记路径上残留容量最小值为。②:给找到的增广路上的每条边上流量加。①:在残留网络上不断找。,给对应的反向边退掉。

summ1ts的博客 449

硬核拆解华为/大疆/小米硬件面试真题:手撕电路+考点思维导图(附答案)

设计一个增益为20dB、带宽≥100kHz的同相放大器,电源电压±5V,要求输出摆幅≥8V。12位ADC的参考电压2.5V,输入信号1kHz正弦波,峰峰值2V。输入24V转5V/10A的同步降压电路,开关频率500kHz,计算MOSFET的损耗并选择型号(需提供TI官网截图)。设计无人机图传系统,要求1080P@30fps,传输距离2km。FPGA设计中,100MHz时钟域到50MHz时钟域传输32位数据,给出同步方案并画时序图。“设计一个输入12V、输出5V/3A的同步降压电路,给出关键参数计算”

qq_63103361的博客 3534

plc secs半导体通讯协议 PLC 与MES的SECS/GEM通讯方案

符合SEMI E4, E5, E30, E37 的 SECS/GEM通讯方案 专业稳定的产品,持续运行5年都不出错 遵循 SEMI 人机交互设计,提供触摸屏支持让你触手可及。 毫米级的响应,单个messge在5ms以内 MES与PLC之间达到实时性,如采集实时性的数据 每秒支持100条Message以上 快速搭建PLC与MES之间的SECS/GEM桥梁,只需简单配置数据 SECS/GEM介绍 遵循 SEMI 人机交互设计,提供触摸屏支持让你触手可及。 增删改上报数据配置简单,并且一目了然 大量的数据处理.

SECS/GEM 6362

【洛谷】P3376【模板】网络最大流(Ford-Fulkerson算法)

题目链接 题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。 输入输出格式 输入格式: 第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来M行每行包含三个正整数ui、vi、wi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi) 输出格式: 一行,包含一个正整数,即为该网络的最大...

悲伤无声地涌出来 771

基于Requests的百度图片搜索爬取技术详解

本文介绍了一种高效获取百度图片搜索数据的混合请求爬虫技术。该技术结合HTML解析与JSON API调用,通过分析百度图片搜索的网络通信模式,实现了首页HTML解析获取初始参数、后续页面直接调用JSON接口的双重机制。系统采用模块化设计,包含Cookies解析、智能请求分发、数据提取、图片下载等核心模块,支持自定义关键词和爬取页数配置。关键技术包括动态参数管理、正则表达式提取、JSON数据处理等,相比传统爬虫方法具有效率高、资源消耗低的优势,为计算机视觉研究提供了可靠的大规模图片数据采集方案。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 419

P3376 网络最大流

题目描述如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。输入输出格式输入格式: 第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。接下来M行每行包含三个正整数ui、vi、wi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi)输出格式: 一行,包含一个正整数,即为该网络的最大流。输入输出样例输入样例#1: 4 5 4 3

qq_37042896的博客 456

【微服务】SpringBoot 对接飞书审批流程使用详解

SpringBoot 对接飞书审批流程使用详解

congge_study的博客 3769

【SWAT】SWAT中预定义河网及流域

平原圩区没有明显的海拔差异。DEM中包含的地形信息无法定义河段的位置和水文连接,SWAT模型Watershed Delineator中提供两种方法,帮助用户输入流域拓扑信息。第一种方法,“Burn-in”和手动绘制河段和子流域边界。首先,使用“Burn-in”功能导入数字河道网络(DCN),并根据DEM和DCN绘制河流和子流域。然后在ArcGIS中编辑“流域”和“河段”层,可以调整位置、范围和水文连接。第二种方法,可以手动绘制或重新编辑河流和子流域,预定义河网及流域。

```On Earth, Be Water, By Coding``` 3273

模板分享:网络最大流

maxflow

pystraf的博客 851

《ESP32单片机基础入门》第2章:开发环境搭建

【代码】《ESP32单片机基础入门》第2章:开发环境搭建。

2301_79143213的博客 579

【模板】网络最大流ISAP

【模板】网络最大流ISAP 建反边从t到s,bfs跑记录每个点所在层,gap记录每层的点数 #include <bist/stdc++.h> using namespace std; typedef long long ll; const ll max_n = 1e6; const ll max_m = 1e6; const ll max_e = max_m * 2; const ll inf = 2147483647; ll head[max_n], next[max_e], to[max_e

weixin_45722843的博客 199

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

P3376 【模板】网络最大流

题目链接 存模板: 最大流EK模板: #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <cmath> #include <queue> using namespace std; #define int long long using namespace std; const int maxn = 205; con

chineseherofeng的博客 179

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

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

题目传送门 题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。 输入格式 第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来M行每行包含三个正整数ui、vi、wi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi) 输出格式 一行,包含一个正整数,即为该网络的最大流。 输入 4 5 4 3 4 2 30...

NIRVANA REBIRTH 357

Dinic最大流 || Luogu P3376 【模板】网络最大流

题面:【模板】网络最大流 代码: 1 #include<cstring> 2 #include<cstdio> 3 #include<iostream> 4 #define min(a,b) ((a)<(b)?(a):(b)) 5 using namespace std; 6 inline int rd(){ 7...

weixin_30483697的博客 85

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

洛谷 P3376 【模板】网络最大流 Description 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。 Input 第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来M行每行包含三个正整数ui、vi、wi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi) Output 一行,包含一个正整数,...

aochongbi5356的博客 155

luogu P3376 【模板】网络最大流

题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流。 输入输出格式 输入格式:   第一行包含四个正整数N、M、S、T,分别表示点的个数、有向边的个数、源点序号、汇点序号。 接下来M行每行包含三个正整数ui、vi、wi,表示第i条有向边从ui出发,到达vi,边权为wi(即该边最大流量为wi)   输出格式:   一行,包含一个正整数,即为该网络的最大流。   ...

YIU 178

一篇网络流 基本模型超全总结(最大流 费用流 多源汇最大流 上下界可行流) 思路+代码模板

一、网络流与最大流 网络流(network-flows)是一种类比水流的解决问题方法,与线性规划密切相关。在一个有向图中,一个源点S到一个汇点T之间有连边,边的权值是该边的最大容量,网络流就是从S点到T点的一个可行流。 网络流最初的问题就是研究最大流,就是指所有可行流里面最大的流。 举个简单的例子,如下图: 若v1到v6六个点表示的是六个城市,每条边的权值表示的是城市之间路的长度,选择要运送一批物资从v1到v6,要走的路最短这就是最短路问题。 但是如果v1到v6表示的是六个中转站,每条边表示的是水管,权值

harry12138小白的博客 1万+

【洛谷】P3376 【模板】网络最大流 dinic+优化

马上要出发去北京蓝桥杯国赛啦,网络最大流还不是特别熟,就刷了两道裸题,怕模板记不住(毕竟是类OI赛制),开个博客记录一下方便火车上手机看,毕竟还是自己写的代码看起来更舒服一点,如果能帮到其他人或有大佬指出问题那就更好啦 #include<iostream> #include<cstdio> #include<cstring> #include<queue&...

LeeCarry的博客 307
上一篇: 飞行员配对方案问题-(网络最大流 )
下一篇: “图灵杯”趣味网络邀请赛-B-回文串(回文串构造)
Cosmic_Tree
博客等级 码龄7年 134粉丝 337原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值