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

AtCoder - abc463_e的题解

题目: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;
}
http://www.jsqmd.com/news/1051613/

相关文章:

  • 视觉-语言模型如何重塑目标检测:从YOLO范式到指令驱动检测
  • 3个核心策略:深度解析Bilibili会员购票工具的技术实现
  • 告别仓库爆满!TQVaultAE让你的泰坦之旅装备管理效率提升500%
  • 2026年新消息:广东婚姻继承律师选择的关键维度与专业服务商剖析 - 品牌鉴赏官2026
  • 2026年6月山东土工膜品牌推荐:工程防渗选型指南与优质服务商解析 - 品牌鉴赏官2026
  • 今日开源[第19期]Panniantong/Agent-Reach - zhang
  • 终极文档下载解决方案:kill-doc浏览器脚本一键下载30+平台免费文档
  • UART模拟DALI协议:低成本智能照明控制方案实战
  • CircuitJS1 Desktop Mod:零基础也能轻松上手的免费电路仿真神器
  • C2PSA+Mona:YOLO11小目标检测的轻量认知增强方案
  • Jailhouse虚拟化与异构多核框架在实时边缘计算中的融合实践
  • 北京评价高的字画鉴定回收机构哪家强 - 品牌排行榜
  • 2026佛山漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • Unlock Music终极指南:3分钟掌握音乐文件解密技巧,真正拥有你的音乐
  • Mem Reduct:为什么你的Windows电脑需要这个轻量级内存管理神器?
  • 嵌入式GUI开发:emWin字体转换器从原理到实战优化指南
  • 2026丽水漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • Windows上的终极Android体验:WSABuilds完整指南与深度技术解析
  • 质数prime numbers
  • Yocto离线构建与Real-time Edge集成:工业嵌入式Linux镜像定制指南
  • 从零构建高安全多模态智能门锁:NXP平台硬件设计与实战解析
  • 从像素到图层:Layerdivider如何用AI算法重塑数字艺术创作流程
  • 告别打印机:如何在浏览器中为数字PDF添加真实扫描质感
  • Hanime1Plugin实战指南:如何在Android设备上构建纯净观影环境
  • 5分钟掌握LinkSwift:浏览器脚本实现8大网盘高效下载的终极方案
  • 3个技巧快速掌握Unlock Music:浏览器中解锁加密音乐文件的终极指南
  • TRAE IDE + MCP Server实战指南:构建AI原生开发总线
  • 5分钟打造完美暗黑2角色:d2s-editor免费存档编辑器完全指南
  • 形式化方法与大象thinking in uml 读书总结
  • D2DX:三步解决《暗黑破坏神2》在现代Windows上的三大核心痛点