首页 > 其他分享 >网络流

网络流

时间:2024-11-02 17:08:24浏览次数:2  
标签:int sum 网络 tp 下界 流量 dis

网络最大流

EK

Dinic+当前弧+剪枝

Dinic:BFS分层,每次只向下一层流

当前弧:流完的边删掉

剪枝:流完的点删掉

细节

\(\textcolor{red}{*}\)加反边时反边容量为0,价值取反,不要搞混了(已经搞错3次了)

剪枝优化尽量不用,如果一定要用的话,注意\(u\to v\)边权为\(0\)不要操作(调用DFS和dis[v]=INF),亲测会死循环

费用流(最小权最大流)

EK+SPFA

在残量网络中找一条增广路,使得该增广路单位费用最小

即把最大流的\(EK\)算法中随便找一条路变成找一条最短路

Dinic+PD+dijkstra

人话:用Johnson算法的方法处理负权边(原始对偶算法),然后跑dij,在最短路DAG上跑Dinic

在边权较小时优势尤为明显

细节

不需要再次BFS分层,直接根据dis[v]==dis[x]+e[i].dis转移即可

与普通Dinic不同的地方:需要加vis[]打标记,防止进入环(为什么进环会死循环?

核心代码

int Dfs(int x,int sum) {
	if(x==t) return sum;
	int fl=0;
	vis[x]=1;
	for(int i=rad[x];i;i=e[i].next) {
		int v=e[i].to;
		rad[x]=i;
		if(dis[v]==dis[x]+e[i].c&&e[i].w&&!vis[v]) {
			int tp=Dfs(v,min(sum,e[i].w));
			fl+=tp; sum-=tp; ansc+=tp*e[i].c;
			e[i].w-=tp; e[i^1].w+=tp;
			if(!sum) break;
		}
	}
	vis[x]=0;
	return fl;
}

费用流的凸性

最小费用可行流

题目

P5814 [CTSC2001] 终极情报网

题意有点小问题,但是其实是简单费用流

取\(log\)化乘为加即可

p.s. 在松弛时,边权的判断要变成\(dis[v]+eps<dis[x]+e[i].w\),否则说是会把\(0\)环判成负环一直跑(why)

模拟费用流

上下界网络流

无源汇上下界可行流

考虑转化为一般的网络流问题(即消除下界),考虑直接先把每条边的流量下界流走,限制转换成\([0,R_i-L_i]\)。但此时点的流量不守恒,考虑用源汇点调整

对于多余/亏欠的流量,向\(S/T\)连权值为\(|W_i|\)边(这里的理解是,这些流量本不应存在,相当于我们为这些流量找了一个“借口”,即从源点来的/到汇点去的,使得这个流合理地存在,而不是理解为“拿源点的流量把它填到0”),此时跑最大流(易知S,T连边的流量相同),如果满流,则调整合法,流量守恒

有源汇上下界可行流

源汇点流量不守恒,但是如果把源汇点“合并”,那这个点就满足流量守恒

做法是连一条\((T,S,0,INF)\)的边,使\(T\)的出流来到\(S\),然后就可以跑无源汇上下界可行流了

有源汇上下界最大流

考虑可行流,满足所有流图的限制,但是会有边没跑满

直接在可行流的基础上,在原图的残量网络上跑最大流即可

p.s. 可以直接简单修改可行流跑的图(改源汇,删\(T\to S\)),不必手动还原(如何还原?)

线性规划

标签:int,sum,网络,tp,下界,流量,dis
From: https://www.cnblogs.com/zhone-lb/p/18522226

相关文章

  • Windows PC通过网络控制PDU开关
    PDU开关原理,是通过跟一台设备进行通信,如果正常通信,则PDU不会进行操作,如果通信中断且超时多长时间多少次后,会进行保持、重启、断开等操作,可以此来对PDU的开关进行控制一 设置IP及循环变量    先设置一个IP,此IP一般为PDU的IP,可用于后续PC和它直接ping包确认是否通信......
  • 【专有网络VPC】DHCP选项集功能
    通过DHCP选项集功能,您可以为专有网络VPC中的云服务器ECS实例配置域名和DNS服务器IP地址。功能发布及地域支持情况公有云支持的地域区域支持DHCP选项集的地域亚太华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华南1(深......
  • 20222416 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容1.1本周学习内容恶意代码是使计算机按照攻击者的意图运行以达到恶意目的的指令集合。类型有计算机病毒,蠕虫,恶意移动代码,后门,特洛伊木马,僵尸程序,Rootkit(内核套件),融合型恶意代码等。分析恶意代码的方式通常有系统监控、静态分析和动态分析等方法。这里展示......
  • 适用FPGA的小型神经网络:加速边缘智能的新篇章
    在人工智能(AI)技术日新月异的今天,神经网络作为其核心驱动力,正逐步渗透到各个行业与领域。然而,传统的神经网络模型往往受限于计算资源和功耗,难以在边缘设备上实现高效运行。现场可编程门阵列(FPGA)作为一种高性能、低功耗的硬件加速器,为小型神经网络的部署提供了理想的平台。本文将深......
  • Docker:网络
    Docker:网络Docker网络架构CNMLibnetwork驱动网络类型命令dockernetworklsdockernetworkinspectdockernetworkcreatedockernetworkconnectdockernetworkdisconnectdockernetworkprunedockernetworkrm网络操作bridgehostcontainernoneDocker网络架......
  • 20222423 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容一、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软件......
  • 20222427 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容1.1本周学习内容学会了有关恶意代码分析的技术的基础知识,包括静态分析与动态分析。尝试运用静态分析方法去实现一些目的行为。学习了有关于信息收集的有关知识,包括相应的定义、收集方式以及实现收集的技术。1.2实验内容恶意代码文件类型标识、脱壳与......
  • 20222424 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    202224242024-2025-1《网络与系统攻防技术》实验四实验报告1.实验内容恶意代码文件类型标识、脱壳与字符串提取。使用IDAPro静态或动态分析,寻找特定输入,使其能够输出成功信息。分析恶意代码样本rada,并撰写报告。取证分析实践——Windows2000系统被攻破并加入僵尸网络2......
  • # 20222419 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    1.实验内容一、恶意代码文件类型标识、脱壳与字符串提取对提供的rada恶意代码样本,进行文件类型识别,脱壳与字符串提取,以获得rada恶意代码的编写作者,具体操作如下:(1)使用文件格式和类型识别工具,给出rada恶意代码样本的文件格式、运行平台和加壳工具;(2)使用超级巡警脱壳机等脱壳软件,......
  • 以太网数据帧、网络协议分析
    计算机网络实验报告实验四以太网数据帧分析一、实验目的了解网络协议分析软件的过滤方式和原则,包括:按协议类型过滤,按IP地址过滤,按协议模式过滤,按端口过滤等,通过设置不同的过滤条件,熟悉协议类型、端口、协议等概念;分析以太网数据帧的构成,数据链路层将不可靠的物理层转......