当前位置: 首页 > news >正文

spfa

最短路径

把处理的加入队列,下次也是从队列取出来处理,直到队列空了。感觉跟我第一次错迪杰斯特拉一样,但是这个好理解也简单。

漏了两个处理:1是记录已经在队列的就不要入了。2是记录进入队列次数,超过n就是负数。

#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>using namespace std;
int INF=0x3f3f3f3f;int main()
{ios::sync_with_stdio(false);cin.tie(0);int n,m,a,b,c;cin >> n>> m;vector<vector<pair<int,int>>> ev(n+1);for (int i = 0; i < m; i ++ ){cin >> a >> b >> c;ev[a].push_back({b,c});}queue<int> Q;vector<int> dist(n+1,INF);dist[1] = 0;Q.push(1);int now,e,v;while(!Q.empty()){now = Q.front();Q.pop();for(auto x:ev[now]){e = x.first;v = x.second;if(dist[e]<=dist[now]+v){dist[e] = dist[e];}else{dist[e] = dist[now] + v;Q.push(e);}}}if(dist[n]>INF/2){cout << "impossible";}else{cout << dist[n];}return 0;
}

判断负权回路

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(0);int n,m,a,b,c;cin >> n >> m;int INF=0x3f3f3f3f;vector<int> dist(n+1,INF);vector<vector<pair<int,int>>> ev(n+1);vector<int> innum(n+1,1);//由于全部入队,都是1,记录入队次数,大于n就是有负权queue<int> Q;vector<bool> inflag(n+1,true);//都是1,记录入队情况for (int i = 0; i < m; i ++ ){cin >> a >> b >> c;ev[a].push_back({b,c});}for (int i = 1; i <= n; i ++ ){Q.push(i);//先全部入队}dist[1] = 0;while(!Q.empty()){int now = Q.front();Q.pop();inflag[now] = false;for(auto x: ev[now]){int e = x.first;int v = x.second;if(dist[e]>dist[now]+v){dist[e] = dist[now] + v;if(!inflag[now]){Q.push(e);innum[e]++;}if(innum[e]>n){cout << "Yes";return 0;}}}}cout << "No";
} 
http://www.jsqmd.com/news/558373/

相关文章:

  • 避坑指南:PySide6子窗口传参时容易遇到的5个典型错误(含解决方案)
  • bge-large-zh-v1.5效果展示:中文语义相似度计算案例
  • 3个高效技巧:用RePKG轻松解锁Wallpaper Engine壁纸资源
  • HCIA-AI V3.5华为认证人工智能工程师备考指南:章节重点解析与实战模拟
  • 保姆级教程:在PVE上5分钟搞定一个Ubuntu LXC容器,并配置好Docker环境
  • 互联网产品创新:基于Qwen3-ASR-0.6B的在线教育实时字幕解决方案
  • Z-Image Atelier 智能体(Agent)应用:自主完成多轮图像修改与迭代
  • 阿里云服务器上,用Docker Compose一键部署若依微服务Plus(Ruoyi-Cloud-Plus)的保姆级教程
  • 3分钟快速上手:ComfyUI-WanVideoWrapper视频生成AI终极指南
  • 定积分换元法的核心原则与实战避坑指南
  • YOLOFuse效果实测:低光、烟雾环境下,多模态检测精度提升明显
  • 医疗器械生产许可证厂房建设咨询品牌推荐:新版GMP医疗器械生产许可证代办/无菌医疗器械生产许可证代办/有源器械医疗器械注册/选择指南 - 优质品牌商家
  • PyTorch 2.7镜像开箱即用:小白也能秒懂GPU加速配置
  • 避坑指南:ROS2 Action服务端编译报错undefined reference to ServerBase的5种修复方法
  • YOLOv11赋能卡证检测矫正:新一代目标检测模型实战应用
  • Scarab模组管理器终极指南:空洞骑士模组安装一键搞定
  • 新手必看!用LabVIEW和USB-6008实现正弦波闭环测试(附完整VI源码)
  • 三维向量运算避坑指南:Python中常见的错误与解决方案
  • 阿里Z-Image-ComfyUI商业落地:广告素材中英文混排精准生成
  • AI原生应用行为分析:模型部署最佳实践
  • Keil环境下C与汇编混合编程实战:从参数传递到函数调用
  • Kazumi:解放你的追番体验,打造个性化动漫聚合平台
  • Jimeng AI Studio开源协作:GitHub Discussions社区问答与高频问题沉淀
  • RandLA-Net的‘注意力’怎么用?深入拆解LFA模块,教你用PyTorch复现并可视化特征聚合过程
  • BGE Reranker-v2-m3入门指南:理解归一化分数阈值(0.5)背后的语义区分能力设计逻辑
  • 如何解决电力系统通信开发难题?libiec61850开源库实战指南
  • 用AI看牙新姿势:5张手机照片,TeethDreamer帮你生成3D牙齿模型(附保姆级复现思路)
  • 别再傻傻跑字典了!实战解析:如何从Wireshark抓包中精准提取NTLMv2 Hash(附Kali Hashcat命令)
  • 3大维度破解热键困局:Hotkey Detective让Windows快捷键重获自由
  • STM32F103RCT6通过SPI协议解析PS2手柄数据实现舵机转向控制