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

C++课后习题训练记录Day144

1.练习项目 :

问题描述

小明是蓝桥王国的王子,今天是他登基之日。

在即将成为国王之前,老国王给他出了道题,他想要考验小明是否有能力管理国家。

题目的内容如下:

蓝桥王国一共有 N 个建筑和 M 条单向道路,每条道路都连接着两个建筑,每个建筑都有自己编号,分别为 1∼N 。(其中皇宫的编号为 1)

国王想让小明回答从皇宫到每个建筑的最短路径是多少,但紧张的小明此时已经无法思考,请你编写程序帮助小明回答国王的考核。

输入描述

输入第一行包含两个正整数 N,M。

第 2 到 M+1 行每行包含三个正整数 u,v,w,表示 u→v 之间存在一条距离为 w 的路。

1≤N≤3×105,1≤m≤106,1≤ui,vi≤N,0≤wi≤109。

输出描述

输出仅一行,共 N 个数,分别表示从皇宫到编号为 1∼N 建筑的最短距离,两两之间用空格隔开。(如果无法到达则输出 −1)

2.选择课程

在蓝桥云课中选择题库,选择题号1122并开始练习。

3.开始练习

(1)源码 :

#include<bits/stdc++.h>

using namespace std;

using ll = long long;

const ll N = 3e5+10;

const ll inf = 2e18;


struct Node{

ll x,w;

bool operator < (const Node &u)const{

return w==u.w?x<u.x:w>u.w;

}

};

vector<Node>g[N];

ll d[N];

int n,m;

void dijstra(int st)

{

for(int i=1;i<=n;i++)d[i]=inf;

bitset<N>vis;

priority_queue<Node>pq;

pq.push({st,d[st]=0});

while(pq.size()){

int x=pq.top().x;

int w=pq.top().w;

pq.pop();

if(vis[x])continue;

vis[x]=true;

//拓展

for(const auto &[y,dw]:g[x]){

if(d[x]+dw<d[y]){

d[y]=d[x]+dw;

pq.push({y,d[y]});

}

}

}

}

int main()

{

ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);

cin>>n>>m;

while(m--){

int x,y,w;cin>>x>>y>>w;

g[x].push_back({y,w});

}

dijstra(1);

for(int i=1;i<=n;i++){

cout<<(d[i]>=inf?-1:d[i])<<' ';

}

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,提交此代码,判题结果为正确100分。

(3)练习心得:注意每段代码末尾的分号是否存在 ,如不存在则需即使补充;输入法 是否切换 为英语模式;语法是否错误。

http://www.gsyq.cn/news/1610563.html

相关文章:

  • 股票因子组合怎么避免回测过拟合
  • 【毕业设计】师生健康信息管理系统 SpringBoot+Vue 完整源码(含论文+数据库,可运行)
  • 4步构建企业级质量保障体系:Vue.Draggable项目集成Git Hooks自动化检查实战指南
  • DeepSeek联合北大最新文章DSpark: 如何让大模型推理速度提升 85%?
  • 深入 Claude Code 源码(六):多智能体——Coordinator 与 AgentTool 深度解析
  • 9大网盘直链下载助手:浏览器一键解锁高速下载新体验
  • B站视频下载神器:3分钟掌握BiliDownloader高效下载技巧
  • Go语言的runtime.ReadMemStats内存统计与实时监控指标的导出方法
  • YOLO实例分割工业圆形仪表指针读数识别数据集|电力电表电流电压表深度学习视觉实战仓库
  • 06.28.每日总结
  • 安全组网前五品牌推荐
  • 导师放养没人带?笔墨 AI 全程逻辑引导,相当于半个指导老师
  • APK Installer深度解析:Windows平台上的Android应用部署技术内幕
  • 基于Basler相机的同步软件触发二次开发程序
  • Java的java.lang.StackWalker分布式
  • 2026国内GEO公司排名前十深度盘点!行业格局+实力拆解(企业选型必看)
  • LangGraph 中的 add_messages
  • 如何彻底解决Zotero Style插件兼容性问题:终极修复指南与优化方案
  • Sunshine游戏串流服务器:打造你的终极跨平台游戏串流系统
  • 数字电路模拟程序系列题目实践总结与分析
  • 程序员写技术博客的正确姿势|从零写出高质量 CSDN 爆款文章(排版+结构+流量技巧)
  • 从Vgs到VCO:用拉扎维《模拟CMOS》的核心概念,手把手拆解一个PLL设计流程
  • 在Windows上使用DS4Windows:将PS4/PS5手柄无缝转换为Xbox控制器
  • VR-Reversal:让3D全景视频在普通屏幕上自由探索
  • 2026年6月,长春市优质机动车鉴定评估机构揭秘
  • 别再死磕理论了!手把手带你用CANoe实测Autosar网络管理状态机(附报文分析)
  • SpringBoot+Vue 公益服务平台管理平台源码【适合毕设/课设/学习】Java+MySQL
  • AWS EBS 磁盘扩容与挂载实验手册
  • YOLOv8一站式本地部署:图像分类、检测与分割实战指南
  • Beyond Compare 5终极激活指南:三步实现永久专业版