尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

AtCoder - abc463_e的题解

AtCoder - abc463_e的题解
📅 发布时间:2026/6/21 0:40:33

题目:https://atcoder.jp/contests/abc463/tasks/abc463_e?lang=en

一

题目求\(1\)至点\(2\)到\(n\)的距离,出发点相同,终点不同,是单源最短路径问题,考虑bfs。

二

在题目描述中:

此外,每个城市都安装了曲速门,使用曲速门可以在 \(X _ i+X _ j+Y\) 分钟内从城市 \(i\ (1\le i\le N)\) 到达城市 \(j\ (1\le j\le N)\) 。

可以考虑到从中对于一个点\(j\),改变是否曲速门到达此\(j\)的因素只有\(X _ i+\)\(1\)到\(i\)的时间,因此,考虑一个变量\(mi\),存\(X _ i+\)\(1\)到\(i\)的时间的最小值。

由于\(mi\)的值包含 \(1\)到\(i\)的时间,则我们不必关注\(i\)的值,只需计算\(X _ j=mi+X _ j+Y\)

代码解析

第一部分,变量

#include<bits/stdc++.h>//万能头
using namespace std;
#define int long long//把所有int替换为long long
const int N=200010;//n 的最大值
int n,m,x[N],y;//题目里的n,m,x[i],y
vector<pair<int,int>>e[N];//vector 存边
//(i指从哪来,e[i].first指去哪,e[i].second指路程)
int d[N];//1到i的距离

第二部分,输入

signed main(){//define后,int会改为long long 主函数返回值应为int(signed=int)cin>>n>>m>>y;for(int i=1;i<=m;i++){int u,v,t;cin>>u>>v>>t;//vector 存双向边e[u].push_back({v,t});e[v].push_back({u,t});}for(int i=1;i<=n;i++)cin>>x[i];//题中的x[i]

第三部分,初始化

	for(int i=1;i<=n;i++)d[i]=LLONG_MAX;//1至i的距离默认为INF(无法到达)for(int i=2;i<=n;i++) e[i].push_back({i-1,LLONG_MAX/2}),e[i-1].push_back({i,LLONG_MAX/2});//曲速门不在e里,用i至i-1长度为INF/2(留一点空间)保证图联通d[1]=0;//1至1的距离为0priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>>q;//小根堆first指路程,second指去哪 (pair<int,int>比大小优先看.first)q.push({0,1});//在int mi=LLONG_MAX;//初始化mi

第四部分,bfs

	while(!q.empty()){int w=q.top().first,u=q.top().second;q.pop();if(w!=d[u])continue;//是否最新if(mi!=LLONG_MAX){//mi里是否存过数int v=mi+x[u]+y;//计算长度if(d[u]>v){d[u]=v;//更新q.push({d[u],u});//从自己到自己,从新进入循环continue;//离开本次循环}}mi=min(mi,d[u]+x[u]);//更新mifor(auto i:e[u]){//正常bfsint v=i.first,t=i.second;if(d[v]>d[u]+t){d[v]=d[u]+t;q.push({d[v],v});}}}for(int i=2;i<=n;i++)cout<<d[i]<<" ";//输出return 0;
}

相关新闻

  • M4 Mac Mini 16GB内存部署OpenClaw+oMLX实战指南
  • CircuitJS1 Desktop Mod:零基础也能轻松上手的免费电路仿真神器
  • 今日开源[第19期]Panniantong/Agent-Reach - zhang

最新新闻

  • ncmdumpGUI:解密网易云NCM音频格式的终极指南
  • DDrawCompat:Windows经典游戏兼容性修复利器,让老游戏重获新生
  • Windows预览版自由切换:OfflineInsiderEnroll的价值解锁之旅
  • 终极免费打字练习软件:Qwerty Learner 21天打造英语肌肉记忆指南
  • Kafka-UI完全指南:5分钟搭建可视化Kafka监控平台
  • Ubuntu 14.04下WordPress XML-RPC安全封禁实战指南

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号