当前位置: 首页 > 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.jsqmd.com/news/1098600/

相关文章:

  • AI编程效率提升:从代码生成到工作流自动化的实践
  • S15.3行动触发——降低用户决策的最后阻力
  • 普通投资者做策略复盘时应该记录哪些技术字段
  • 如何将VR视频转换为2D格式:VR-Reversal完整指南
  • 4步构建企业级质量保障体系:Vue.Draggable项目集成Git Hooks自动化检查实战指南
  • 基于HarmonyOS 7.0 跨端开发的沙漠探险装备指南页面实战
  • VMware安装Windows 3.1全攻略:解决声卡驱动与兼容性问题
  • 准对称离散无记忆信道容量的矩阵分解法推广与严谨证明(P124302086杨雪)
  • 【毕业设计】师生健康信息管理系统 SpringBoot+Vue 完整源码(含论文+数据库,可运行)
  • 【大模型原理与微调实战03】自注意力机制核心原理:大模型理解语言的底层心脏
  • 终极SVG编辑器指南:3分钟掌握浏览器矢量绘图
  • 特征空间度量:高维语义特征的欧氏距离计算
  • 终极iOS降级实战:如何用Legacy-iOS-Kit让旧设备重获新生
  • 股票信号监控从行情数据到提醒链路怎么设计
  • MVCC详细说明
  • 基于HarmonyOS 7.0 跨端开发的宝石真伪鉴定页面实战
  • 手机AI Agent落地实战:从场景适配到工程避坑指南
  • Java计算机毕设之基于 SpringBoot 的线上教学质量评估管理系统的设计与实现 基于 SpringBoot 的高校课程评分信息管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • Python开发者实战指南:从零部署Apache Doris并实现数据连接与操作
  • 终极指南:如何快速上手OpenXLSX C++库处理Excel文件
  • 从零开始构建yolov8-seg模型
  • 容器化——让应用“拎包入住“
  • DeepSeek联合北大最新文章DSpark: 如何让大模型推理速度提升 85%?
  • 深入 Claude Code 源码(六):多智能体——Coordinator 与 AgentTool 深度解析
  • 9大网盘直链下载助手:浏览器一键解锁高速下载新体验
  • B站视频下载神器:3分钟掌握BiliDownloader高效下载技巧
  • 009、ESRGAN改进:RRDB残差密集块与相对对抗损失的实战优化
  • Go语言的runtime.ReadMemStats内存统计与实时监控指标的导出方法
  • 最新热门的AI智能体平台
  • AI 编程框架全景比较 - 使用场景、优势与选型指南