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

P2865 [USACO06NOV] Roadblocks G

思路:严格次短路,在任何情况下如果发现一条从1到i的路,都有以下情况:

        1.该路径小于当前1到i的最短路,将最短路替换

         2.该路径长度等于当前最短路,舍去

        3.该路径大于最短路且小于次短路,将此路径替换次短路,

        4.该路径长度大于或等于目前次短路,舍去

我们要跳出整个最短路,枚举所有边,这个时候可以我们可以预处理两条最短路,因为是双向边,我们用一个d[ ][0]数组表示1到其他点的最短路,d[ ][1]数组表示其他点到n的最短路

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=5e3+10,M=2e5+10;
struct node{int nxt,to,dis;
}e[M];
int n,m,x,y,z,h[N],ct;
void add(int x,int y,int z){e[++ct].nxt=h[x],e[ct].to=y,e[ct].dis=z,h[x]=ct;
}//链式前向星
int d[N][2];//两种不同状态
bool vis[N];
queue<int> q;
void spfa(int s){memset(d,0x7f,sizeof(d));q.push(s);vis[s]=1;d[s][0]=0;while(!q.empty()){int u=q.front();vis[u]=0;q.pop();for(int i=h[u];i;i=e[i].nxt){int v=e[i].to;if(d[v][0]>d[u][0]+e[i].dis){d[v][1]=d[v][0];d[v][0]=d[u][0]+e[i].dis;if(!vis[v])vis[v]=1,q.push(v);}if(d[v][1]>d[u][0]+e[i].dis&&d[u][0]+e[i].dis>d[v][0]){d[v][1]=d[u][0]+e[i].dis;if(!vis[v])vis[v]=1,q.push(v);}if(d[v][1]>d[u][1]+e[i].dis){d[v][1]=d[u][1]+e[i].dis;if(!vis[v])vis[v]=1,q.push(v);}}} 
}//spfa做次短路
int main(){ios::sync_with_stdio(0);cin>>n>>m;for(int i=1;i<=m;i++){cin>>x>>y>>z;add(x,y,z);add(y,x,z);//双向建边}spfa(n);cout<<d[1][1]<<endl;
}

http://www.xdnf.cn/news/1281637.html

相关文章:

  • 第2节 PyTorch加载数据
  • 3.数据类型和类型装换
  • 爬虫和数据分析相结合案例
  • 安全合规4--下一代防火墙组网
  • 强化学习常用数据集
  • 【11-计算机视觉介绍】
  • RAG所存在的问题和解决方案
  • 贪心----3. 跳跃游戏 II
  • 2438. 二的幂数组中查询范围内的乘积
  • 零基础AI编程开发微信小程序赚流量主广告实战
  • MySQL高可用改造之数据库开发规范(大事务与数据一致性篇)
  • Kubernetes生产环境健康检查自动化指南
  • SQL复杂查询
  • Java AI生成长篇小说的实用
  • 基于大数据的个性化学习环境构建的研究与应用
  • Flutter Provider 状态管理全面解析与实战应用:从入门到精通
  • libwebsockets 服务端获取过代理的真实连接IP
  • 重学React(五):脱围机制一
  • 使用Windbg分析多线程死锁项目实战问题分享
  • 金蝶云星空 × SRM 深度集成实战(附完整接口清单)
  • 两个Maven工程,使用idea开发,工程A中依赖了工程B,改了工程B,工程A如何获取最新代码
  • Java学习 -- 可变参数与Collections工具类
  • 基于数据结构用java实现二叉树的排序器
  • Java项目基本流程(三)
  • 【SpringBoot】持久层 sql 注入问题
  • 第六十一章:AI 模型的“视频加速术”:Wan视频扩散模型优化
  • Spring Boot文件下载功能实现详解
  • 每日算法刷题Day61:8.11:leetcode 堆11道题,用时2h30min
  • 第十六届蓝桥杯大赛青少组 C++ 省赛真题解析(2025年8月10日)
  • (25.08)Ubuntu20.04复现KISS-ICP