当前位置: 首页 > 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.lryc.cn/news/617210.html

相关文章:

  • ListNode* dummy = new ListNode();什么意思
  • 【功能测试】软件集成测试思路策略与经验总结
  • 使用纯NumPy实现回归任务:深入理解机器学习本质
  • 小结: getSpringFactoriesInstances从 `spring.factories` 文件中加载和实例化指定类型的类
  • 一维码+二维码+字符识别
  • 关于开发面对颠覆性需求变更的思考
  • SpringBoot 实现 Excel 导入导出功能的三种实现方式
  • MySQL语句,体系结构等基础知识解析
  • 量子计算:叩响金融定价革命的大门——期权定价的范式转移
  • 【PyTorch学习笔记 - 01】 Tensors(张量)
  • MLAG双活网络妙招:BGP + 静态VRRP实现智能负载均衡
  • MATLAB实现遗传算法求解路网路由问题
  • 【FAQ】Win11创建资源不足绕开微软账号登录
  • 【数据结构入门】树
  • 2025世界机器人大会|具身智能机器人十大发展趋势
  • 人脸识别系统技术文档
  • C9800 ISSU升级
  • Netty使用CA证书实现tls双认证
  • Linux ethernet驱动移植之常见问题
  • html转成markdown(1.0.0)
  • Mybatis学习之缓存(九)
  • 文件编辑html
  • 通用 maven 私服 settings.xml 多源配置文件(多个仓库优先级配置)
  • Django配置sqllite之外的数据库
  • 爬虫与数据分析结合案例学习总结
  • Apache Ignite 核心组件:GridClosureProcessor解析
  • pom.xml父子模块配置
  • 【Maven】01 - 入门篇
  • Maven 的 module 管理
  • 基于Spring Data Elasticsearch的分布式全文检索与集群性能优化实践指南