BF算法的优化之SPFA算法
介绍
全称Shortest Path Faster Algorithm.
优化思想:
1.由int path[maxn]定义的记录最短距离的容器,只有在path[i]+value<path[j]时才会更新,它们两者的值相等时path的值仍保持不变。由此优化容器,选择用一个队列来替path数组辅助记录最短路径。
2.优化BF算法判断负环:
如果最短路径未在队列中,则加入,入队次数累加,直至队列为空时结束。其中,如果一个顶点的入队次数超过顶点个数V-1,说明在进行V-1趟比较操作后,仍存在更小的路径,即图中存在从源点可达的负环。
实现
const int maxn=100;
const int INF=1000000000;
int path[maxn],num[maxn];
bool isin[maxn]={false};//是否在队列中
struct node{int v;int value;
};
vector<node> table[maxn];
int n;//顶点个数bool SPFA(int b){fill(path,path+maxn,INF);memset(num,0,sizeof(num));queue<int> q;q.push(b);path[b]=0;num[b]++;//记录入队次数isin[b]=true;while(!q.empty()){int front=q.front();q.pop();num[front]--;isin[front]=false;//边记录边判断:以出队元素为中心展开for(int j=0;j<table[front].size();j++){int v=table[front][j].v;int value=table[front][j].value;if(path[front]+value<path[v]){if(!isin[v]){//最优路径不在队列中q.push(v);//入队num[v]++;isin[v]=true;if(num[v]>=n)//存在负环return false;}}}}}return true;
}
相关文章:
BF算法的优化之SPFA算法
介绍 全称Shortest Path Faster Algorithm. 优化思想: 1.由int path[maxn]定义的记录最短距离的容器,只有在path[i]value<path[j]时才会更新,它们两者的值相等时path的值仍保持不变。由此优化容器,选择用一个队列来替path数…...
java 基础(核心知识搭配代码)
前言 java的学习分为了上部分以及下部分进行学习,上部分就是对于java的基础知识,面向对象上,面向对象下,异常操作,javaApi;下部主要是集合,泛型,反射,IO流,J…...
ctf_show笔记篇(web入门---信息收集)
目录 信息收集 1-2:查看源代码 3:bp抓包 4:robots.txt(这个文件里会写有网站管理者不想让爬虫的页面或其他) 5:网站源代码泄露index.phps 6:同样也是源码泄露,(拿到…...
html基本标签
<h1></h1> <p></p> h是标签从h1~h6,没用h7,h8 p是段落 <a href"https://www.educoder.net">Educoder平台</a> href可以指定链接进行跳转 <img src"https://www.educoder.net/attachments/download/2078…...
端游如何防破解
在2023年这个游戏大年中,诸多热门大作涌现,作为世界级IP哈利哈利波特的衍生游戏——《霍格沃茨之遗》毫无悬念地成为2023年游戏圈的首款爆款作品,斩获了一众玩家的青睐。 在众多光环的加持下,《霍格沃茨之遗》很快被著名游戏破解…...
用 TVMC 编译和优化模型(2)
文章目录 前言一、使用 TVMC二、获得模型三、将 ONNX 模型编译到 TVM 运行时中四、TVMC 从编译的模块中运行模型4.1、输入预处理4.2 运行已编译的模块4.3 输出后处理 前言 在本节中,将使用 TVMC,即 TVM 命令行驱动程序。TVMC 工具,它暴露了 T…...
第八节 龙晰Anolis 8.8 安装 DDE 桌面环境
一、前言 最小化安装的龙晰 Anolis OS 8.8 是不带图形化界面的,只能使用命令行,有些时候需要用到桌面环境,而DDE (Deepin Desktop Enviroment) 就是很好的桌面环境,它是指龙晰 Anolis 所搭载的中国自主桌面环境,用起来…...
SpringBoot之Actuator的两种监控模式
SpringBoot之Actuator的两种监控模式 springboot提供了很多的检测端点(Endpoint),但是默认值开启了shutdown的Endpoint,其他默认都是关闭的,可根据需要自行开启 文章目录 SpringBoot之Actuator的两种监控模式1. pom.xml2. 监控模式1. HTTP2. JMX 1. pom.xml <de…...
【Kubernetes】k8s中容器之间、pod之间如何进行网络通信?
目录 PodKubernetes 网络模型同一Pod上的容器之间进行通信同一Node上的不同Pod之间进行通信不同Node上的Pod之间进行通信Service参考 Pod 首先来回顾一下Pod: Pod 是用于构建应用程序的最小可部署对象。单个 Pod 代表集群中正在运行的工作负载,并封装一…...
神经网络冻结参数后权重仍然更新
1. 背景 冻结model中的cnn1层: model.cnn1.requires_grad False 运行后发现cnn1的参数仍然在更新 作为一个编程菜逼,我乍一看没毛病呀,凌晨1点的我越调越迷糊,终于最终还是找到了问题,还是基础不牢 2.原因 应使…...
STM32学习7 按键扫描
STM32学习7 按键扫描 一、实验电路介绍二、按键GPIO初始化三、扫描原理1. GPIO引脚配置2. 状态轮询3. 按键状态检测4. 循环扫描的优缺点优点:缺点: 四、一次扫描与持续扫描五、代码实现1. 头文件定义2. 函数实现3. 主体函数 一、实验电路介绍 本实验使用…...
图像物体的边界- 华为OD统一考试(C卷)
OD统一考试(C卷) 分值: 200分 题解: Java / Python / C 题目描述 给定一个二维数组M行N列,二维数组里的数字代表图片的像素,为了简化问题,仅包含像素1和5两种像素,每种像素代表一个…...
.idea文件详解
.idea文件的作用: .idea文件夹是存储IntelliJ IDEA项目的配置信息,主要内容有IntelliJ IDEA项目本身的一些编译配置、文件编码信息、jar包的数据源和相关的插件配置信息。一般用git做版本控制的时候会把.idea文件夹排除,因为这个文件下保存的…...
安卓JNI基础知识
JNI基础知识 JNI简介NDK配置开发环境JNI实践配置CMakeJNI编码JNI注册1.静态注册2.动态注册 编译方式CMakeLists编译Makefile编译命令编译 JNI和C/C代码分离Java调用C/C查看so中包含的方法 C/C调用Java打印C/C的log生成多个共享库soJNI调试 本文整理了JNI技术基础知识 JNI简介 …...
Nginx高级技巧:实现负载均衡和反向代理
文章目录 Nginx概述Nginx作用正向代理反向代理负载均衡动静分离 Nginx的安装 -->Docker3.1 安装Nginx3.2 Nginx的配置文件3.3 修改docker-compose文件 Nginx源码安装nginx常用命令nginx配置文件配置文件位置配置文件结构详情 Nginx的反向代理【重点】基于Nginx实现反向代理4…...
2024年2月最新微信域名检测拦截接口源码
这段PHP代码用于检测指定域名列表中的域名是否被封。代码首先定义了一个包含待检测域名的数组 $domainList,然后遍历该数组,对每个域名发送HTTP请求并检查响应内容以判断域名是否被封。 具体步骤如下: 1. 定义待检测的域名列表。 2. 遍历域名…...
1、Linux-安装
一、Linux和Windows的一些区别 1、Linux严格区分大小写——【Windows创建文件夹时不区分大小写】 2、Linux中所有内容都以文件形式存储,包括硬件 3、Linux不靠拓展名区分文件类型,而是可以通过读取文件开头的一些字节来区分。 但是在实际使用中一般要…...
flutter 父组件调用子组件方法
当子组件是有状态组件 声明GlobalKey 如 声明 GlobalKey formKey GlobalKey<FormState>(); Form( key: formKey, autovalidateMode: AutovalidateMode.always, child: Column( children: <Widget>[ TextFormField( autofocus: true, initialValue: "a&quo…...
京东云硬钢阿里云:承诺再低10%
关注卢松松,会经常给你分享一些我的经验和观点。 阿里云刚刚宣布史上最大规模的全线产品降价20%,这热度还没过,京东云当晚就喊话:“随便降、比到底!,全网比价,击穿低价,再低10%”,并…...
Phoncent博客:探索AI写作与编程的无限可能
Phoncent博客,一个名为Phoncent的创新AIGC博客网站,于2023年诞生。它的创始人是庄泽峰,一个自媒体人和个人站长,他在网络营销推广领域有着丰富的经验。庄泽峰深知人工智能技术在内容创作和编程领域的潜力和创造力,因此…...
AI agent开发笔记
AI模型强大程度:google CC > Microsoft copilot 1.在该路径下添加,AI生成规则文档:copilot-instructions.md...
一句话出全套商品图,这才是电商人该用的 AI 神器
几年前大家都在喊不出海就出局,那是抢地盘的时代。现在地盘抢完了,拼的是谁的锄头更快。过去一年,生成式AI从尝鲜变成了标配,从选品预测到广告投放,AI已经渗透进了生意的每一个毛细血管。但要说冲击最大、体感最强的&a…...
如何彻底解决Cursor AI试用限制:免费解锁Pro功能的完整技术方案
如何彻底解决Cursor AI试用限制:免费解锁Pro功能的完整技术方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached…...
终极指南:3步学会使用Akebi-GC游戏辅助工具提升原神体验
终极指南:3步学会使用Akebi-GC游戏辅助工具提升原神体验 【免费下载链接】Akebi-GC (Fork) The great software for some game that exploiting anime girls (and boys). 项目地址: https://gitcode.com/gh_mirrors/ak/Akebi-GC 还在为《原神》中繁琐的神瞳收…...
Mi-Create:小米手表表盘设计的终极免费工具完整指南
Mi-Create:小米手表表盘设计的终极免费工具完整指南 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 还在为小米手表找不到心仪表盘而烦恼吗&#x…...
Reflection_Summary实战教程:如何构建高效的文本分类与相似度计算系统
Reflection_Summary实战教程:如何构建高效的文本分类与相似度计算系统 【免费下载链接】Reflection_Summary 算法理论基础知识应知应会 项目地址: https://gitcode.com/gh_mirrors/re/Reflection_Summary 文本分类与相似度计算是自然语言处理领域的核心技术&…...
多模态入门新选择:ViLT模型实战,从文本处理到图像理解的统一Transformer玩法
多模态入门新选择:ViLT模型实战,从文本处理到图像理解的统一Transformer玩法 当你第一次听说多模态学习时,脑海中可能会浮现出复杂的双流架构、繁琐的区域特征提取,以及让人望而生畏的计算资源需求。这正是大多数Vision-and-Langu…...
如何快速解决Jellyfin媒体库元数据缺失问题:MetaShark插件完整指南
如何快速解决Jellyfin媒体库元数据缺失问题:MetaShark插件完整指南 【免费下载链接】jellyfin-plugin-metashark jellyfin电影元数据插件 项目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-metashark Jellyfin作为一款开源的媒体服务器软件&…...
从零到一:在RK3588 Android12上实战RTL8723DU WiFi蓝牙双模驱动移植
1. 开篇:为什么需要RTL8723DU驱动移植? 最近在折腾RK3588开发板时,发现原厂Android12系统居然不支持RTL8723DU这个WiFi蓝牙双模模块。这就像买了辆跑车却发现油箱盖打不开——硬件明明在那里,就是用不了。不过别担心,经…...
HunyuanVideo-Foley参数详解:temperature/top_p对音效多样性影响
HunyuanVideo-Foley参数详解:temperature/top_p对音效多样性影响 1. 音效生成参数概述 在HunyuanVideo-Foley音效生成系统中,temperature和top_p是两个核心参数,它们直接影响生成音效的多样性和质量。理解这两个参数的工作原理,…...
