2025年3月GESP真题及题解(C++八级): 上学

2025年3月GESP真题及题解(C++八级): 上学

题目描述

C 城可以视为由n nn个结点与m mm条边组成的无向图。 这些结点依次以1 , 2 , … , n 1, 2, \ldots, n1,2,,n标号,边依次以1 ≤ i ≤ m 1 \leq i \leq m1im连接边号为u i u_iuiv i v_ivi的结点,长度为l i l_ili米。

小 A 的学校坐落在 C 城的编号为s ss的结点。小 A 的同学们共有q qq位,他们想在保证不迟到的前提下,每天尽可能晚地出门上学。但同学们并不会计算从家需要多久才能到学校,于是找到了聪明的小 A。第i ii位同学 (1 ≤ i ≤ q 1 \leq i \leq q1iq) 告诉小 A,他的家位置于编号为h i h_ihi的结点,并且他每秒钟能行走 1 米。请你帮小 A 计算,每位同学从家出发需要多少秒才能到达学校呢?

输入格式

第一行,四个正整数n , m , s , q n, m, s, qn,m,s,q,分别表示 C 城的结点数与边数,学校所在的结点编号,以及小 A 同学们的数量。

接下来m mm行,每行三个正整数u i , v i , l i u_i, v_i, l_iui,vi,li,表示 C 城中的一条无向边。

接下来q qq行,每行一个正整数h i h_ihi,表示一位同学的情况。

输出格式

q qq行,对于每位同学,输出一个整数,表示从家出发到学校的最短时间。

输入输出样例 1
输入 1
5 5 3 3 1 2 3 2 3 2 3 4 1 4 5 3 1 4 2 5 1 4
输出 1
4 3 1
说明/提示

对于20 % 20\%20%的测试点,保证q = 1 q = 1q=1

对于另外20 % 20\%20%的测试点,保证1 ≤ n ≤ 500 1 \leq n \leq 5001n5001 ≤ m ≤ 500 1 \leq m \leq 5001m500

对于所有测试点,保证1 ≤ n ≤ 2 × 10 5 1 \leq n \leq 2 \times 10^51n2×1051 ≤ m ≤ 2 × 10 5 1 \leq m \leq 2 \times 10^51m2×1051 ≤ q ≤ 2 × 10 5 1 \leq q \leq 2 \times 10^51q2×1051 ≤ u i , v i , s , h i ≤ n 1 \leq u_i, v_i, s, h_i \leq n1ui,vi,s,hin1 ≤ l i ≤ 10 6 1 \leq l_i \leq 10^61li106

题目分析

本题要求计算从学校结点s到每个同学家结点h_i的最短路径长度(单位:米)。由于行走速度为1米/秒,所以最短路径长度即为所需时间(秒)。这是一个典型的单源最短路径问题,给定无向图、正权边,需要高效处理最多2e5个结点和边的规模。

算法思路
  1. 建模:将城市抽象为无向图,结点数n,边数m,每条边有长度l_i(权值)。
  2. 最短路径计算:使用Dijkstra 算法(堆优化版本),从源点s开始计算到所有结点的最短距离。复杂度为 O((n+m) log n),可以处理2e5的数据规模。
  3. 查询处理:预处理出所有最短距离后,对每个查询h_i直接输出dist[h_i]
注意事项
  • 边权最大1e6,边数最多2e5,总距离可能超过int范围,需使用long long
  • 图可能不连通,但题目未明确说明。为安全起见,初始化距离为极大值(如1e18),不可达时输出该值(但根据题意通常连通)。

代码实现

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintMAXN=200010;// 最大结点数constll INF=1e18;// 表示无穷大的距离intn,m,s,q;// 结点数、边数、学校结点、查询数vector<pair<int,ll>>graph[MAXN];// 邻接表ll dist[MAXN];// 从学校到各点的最短距离// Dijkstra 算法,计算从起点 start 到所有点的最短距离voiddijkstra(intstart){// 初始化所有距离为无穷大for(inti=1;i<=n;++i)dist[i]=INF;dist[start]=0;// 小顶优先队列,存储 (当前距离, 结点编号)priority_queue<pair<ll,int>,vector<pair<ll,int>>,greater<pair<ll,int>>>pq;pq.push({0,start});while(!pq.empty()){// 取出当前距离最小的结点ll d=pq.top().first;intu=pq.top().second;pq.pop();// 如果这个距离已经大于记录的距离,说明是旧数据,跳过if(d>dist[u])continue;// 遍历所有邻接点for(auto&edge:graph[u]){intv=edge.first;ll w=edge.second;// 如果通过 u 到 v 的距离更短,则更新if(dist[u]+w<dist[v]){dist[v]=dist[u]+w;pq.push({dist[v],v});}}}}intmain(){// 读入基本数据scanf("%d %d %d %d",&n,&m,&s,&q);// 读入边信息,构建无向图for(inti=0;i<m;++i){intu,v;ll l;scanf("%d %d %lld",&u,&v,&l);graph[u].push_back({v,l});graph[v].push_back({u,l});// 无向边,双向添加}// 运行 Dijkstra,计算从学校到所有点的最短距离dijkstra(s);// 处理每个查询,直接输出最短距离(即时间)while(q--){inth;scanf("%d",&h);printf("%lld\n",dist[h]);}return0;}

功能分析

  1. 图构建:使用邻接表存储无向图,每个边记录终点和权值。
  2. 最短路径计算
    • 初始化距离数组dist,源点s距离为0。
    • 使用优先队列(最小堆)维护当前未确定最短距离的结点,每次取出距离最小的结点进行松弛操作。
    • 对每条边进行松弛,若找到更短路径则更新距离并加入队列。
  3. 查询响应:由于已预处理所有最短距离,每个查询只需 O(1) 时间输出结果。
  4. 时间复杂度:Dijkstra 算法 O((n+m) log n)。
  5. 空间复杂度:O(n+m),用于存储图和距离数组。

样例验证

输入:

5 5 3 3 1 2 3 2 3 2 3 4 1 4 5 3 1 4 2 5 1 4

计算过程:

  • 从结点3出发,最短距离:
    • dist[3]=0
    • dist[2]=2
    • dist[4]=1
    • dist[1]=min(3→2→1=5, 3→4→1=3)=3
    • dist[5]=min(3→4→5=4, 其他路径更长)=4
  • 查询输出:
    • h=5 → 4
    • h=1 → 3
    • h=4 → 1

各种学习资料,助力大家一站式学习和提升!!!

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"########## 一站式掌握信奥赛知识! ##########";cout<<"############# 冲刺信奥赛拿奖! #############";cout<<"###### 课程购买后永久学习,不受限制! ######";return0;}

1、csp信奥赛高频考点知识详解及案例实践:

CSP信奥赛C++动态规划:
https://blog.csdn.net/weixin_66461496/category_13096895.html点击跳转

CSP信奥赛C++标准模板库STL:
https://blog.csdn.net/weixin_66461496/category_13108077.html 点击跳转

信奥赛C++提高组csp-s知识详解及案例实践:
https://blog.csdn.net/weixin_66461496/category_13113932.html

2、csp信奥赛冲刺一等奖有效刷题题解:

CSP信奥赛C++初赛及复赛高频考点真题解析(持续更新):https://blog.csdn.net/weixin_66461496/category_12808781.html 点击跳转

CSP信奥赛C++一等奖通关刷题题单及题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12673810.html 点击跳转

3、GESP C++考级真题题解:

GESP(C++ 一级+二级+三级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12858102.html 点击跳转

GESP(C++ 四级+五级+六级)真题题解(持续更新):https://blog.csdn.net/weixin_66461496/category_12869848.html 点击跳转


GESP(C++ 七级+八级)真题题解(持续更新):
https://blog.csdn.net/weixin_66461496/category_13117178.html

4、CSP信奥赛C++竞赛拿奖视频课:

https://edu.csdn.net/course/detail/40437 点击跳转

· 文末祝福 ·

#include<bits/stdc++.h>usingnamespacestd;intmain(){cout<<"跟着王老师一起学习信奥赛C++";cout<<" 成就更好的自己! ";cout<<" csp信奥赛一等奖属于你! ";return0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1166137.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

检测结果不准确?FSMN-VAD静音阈值优化实战案例

检测结果不准确&#xff1f;FSMN-VAD静音阈值优化实战案例 1. 背景与问题引入 在语音识别、自动字幕生成和长音频切分等任务中&#xff0c;语音端点检测&#xff08;Voice Activity Detection, VAD&#xff09;是至关重要的预处理步骤。其核心目标是从连续的音频流中精准定位…

Z-Image-Turbo内存不足?Accelerate库优化部署实战解决

Z-Image-Turbo内存不足&#xff1f;Accelerate库优化部署实战解决 Z-Image-Turbo是阿里巴巴通义实验室开源的高效AI图像生成模型&#xff0c;作为Z-Image的蒸馏版本&#xff0c;它在保持高质量图像输出的同时大幅提升了推理效率。该模型仅需8步即可完成图像生成&#xff0c;具…

小白友好!Hunyuan-MT-7B-WEBUI一键启动中文界面改造

小白友好&#xff01;Hunyuan-MT-7B-WEBUI一键启动中文界面改造 1. 引言&#xff1a;让AI工具真正“说”你的语言 在人工智能技术飞速发展的今天&#xff0c;越来越多的开源项目如 Stable Diffusion WebUI、LLaMA Factory 等正在被广泛使用。然而&#xff0c;一个长期被忽视的…

二十六、【鸿蒙 NEXT】LazyForeach没有刷新

【前言】 上一章我们介绍了ObservedV2与LazyForeach结合实现动态刷新的效果&#xff0c;这里在上一章代码基础上给出一种场景&#xff0c;虽然LazyForeach中的generateKey变更了&#xff0c;但是列表还是没有刷新的情况。 1、结合Refresh组件实现下拉刷新 我们在展示列表数据…

Qwen2.5-0.5B如何防止提示注入?安全防护部署教程

Qwen2.5-0.5B如何防止提示注入&#xff1f;安全防护部署教程 1. 引言 随着大语言模型在边缘计算和本地部署场景中的广泛应用&#xff0c;基于轻量级模型的AI对话系统正逐步进入企业服务、智能客服和个人助手等领域。Qwen/Qwen2.5-0.5B-Instruct 作为通义千问系列中体积最小&a…

fft npainting lama性能压测报告:QPS与延迟指标分析

fft npainting lama性能压测报告&#xff1a;QPS与延迟指标分析 1. 测试背景与目标 随着图像修复技术在内容创作、数字资产管理等领域的广泛应用&#xff0c;基于深度学习的图像修复系统对实时性与稳定性的要求日益提升。fft npainting lama 是一款基于 FFT&#xff08;快速傅…

2025年3月GESP真题及题解(C++八级): 割裂

2025年3月GESP真题及题解(C八级): 割裂 题目描述 小杨有一棵包含 $ n $ 个节点的树&#xff0c;其中节点的编号从 $ 1 $ 到 $ n $。 小杨设置了 $ a $ 个好点对 {⟨u1,v1⟩,⟨u2,v2⟩,…,⟨ua,va⟩}\{\langle u_1, v_1 \rangle, \langle u_2, v_2 \rangle, \dots, \langle u_…

Emotion2Vec+ Large智能家居控制?语音情绪触发指令设想

Emotion2Vec Large智能家居控制&#xff1f;语音情绪触发指令设想 1. 引言&#xff1a;从情感识别到智能交互的跃迁 随着人工智能技术的发展&#xff0c;语音交互已不再局限于“唤醒词命令”的固定模式。用户期望更自然、更具感知能力的人机交互方式。Emotion2Vec Large 作为…

语音识别避坑指南:Fun-ASR-MLT-Nano-2512常见问题全解

语音识别避坑指南&#xff1a;Fun-ASR-MLT-Nano-2512常见问题全解 你有没有遇到过这种情况&#xff1a;刚部署完 Fun-ASR-MLT-Nano-2512&#xff0c;满怀期待地上传一段粤语音频&#xff0c;结果返回空识别结果&#xff1f;或者服务启动后 CPU 占用飙到 300%&#xff0c;日志里…

SGLang动态批处理:请求合并优化实战指南

SGLang动态批处理&#xff1a;请求合并优化实战指南 1. 引言 1.1 业务场景描述 在大模型推理服务部署过程中&#xff0c;随着用户请求数量的快速增长&#xff0c;系统吞吐量和响应延迟成为关键瓶颈。尤其是在多轮对话、任务规划、结构化数据生成等复杂场景下&#xff0c;传统…

Whisper Large v3语音增强:基于深度学习的降噪技术

Whisper Large v3语音增强&#xff1a;基于深度学习的降噪技术 1. 引言 1.1 技术背景与行业需求 在多语言交流日益频繁的今天&#xff0c;语音识别技术已成为跨语言沟通、会议记录、内容创作和无障碍服务的核心工具。然而&#xff0c;真实场景中的音频往往伴随着环境噪声、回…

GPEN镜像使用小技巧,提升修复效率两倍

GPEN镜像使用小技巧&#xff0c;提升修复效率两倍 1. 引言 在人像修复与增强领域&#xff0c;GPEN&#xff08;GAN-Prior based Enhancement Network&#xff09;凭借其基于生成先验的空域学习机制&#xff0c;在保持人脸结构一致性的同时实现了高质量的超分辨率重建。然而&a…

开发者效率提升:IndexTTS-2-LLM自动化测试部署教程

开发者效率提升&#xff1a;IndexTTS-2-LLM自动化测试部署教程 1. 引言 1.1 学习目标 本文旨在为开发者提供一套完整的 IndexTTS-2-LLM 智能语音合成系统 的本地化部署与自动化测试实践方案。通过本教程&#xff0c;您将掌握&#xff1a; 如何快速部署基于 kusururi/IndexT…

AI图像增强标准建立:Super Resolution质量评估体系

AI图像增强标准建立&#xff1a;Super Resolution质量评估体系 1. 引言&#xff1a;AI超清画质增强的技术演进与挑战 随着数字内容消费的爆发式增长&#xff0c;用户对图像质量的要求持续提升。从老照片修复到移动端低带宽图片加载&#xff0c;低分辨率图像的视觉还原问题已成…

结合Multisim数据库的电路分析教学改革:深度剖析

从“做实验”到“看数据”&#xff1a;当电路分析课遇上Multisim数据库你有没有遇到过这样的场景&#xff1f;学生交上来的实验报告&#xff0c;波形图贴得整整齐齐&#xff0c;数据分析也写得头头是道。可当你问他&#xff1a;“你是怎么调出示波器的触发点的&#xff1f;”他…

SGLang-v0.5.6环境备份术:云端快照随时回滚不怕错

SGLang-v0.5.6环境备份术&#xff1a;云端快照随时回滚不怕错 你是不是也遇到过这种情况&#xff1f;刚在服务器上配好SGLang环境&#xff0c;跑通了第一个推理任务&#xff0c;正准备继续深入学习&#xff0c;结果一不小心执行了一条错误命令&#xff0c;把Python依赖全搞乱了…

支持实时录音与批量处理|深度体验科哥版FunASR语音识别WebUI

支持实时录音与批量处理&#xff5c;深度体验科哥版FunASR语音识别WebUI 1. 引言&#xff1a;中文语音识别的轻量化落地实践 在智能语音技术快速发展的今天&#xff0c;高精度、低延迟的语音识别系统正广泛应用于会议记录、视频字幕生成、客服质检等多个场景。然而&#xff0…

Z-Image-Turbo图像格式输出说明,目前仅支持PNG

Z-Image-Turbo图像格式输出说明&#xff0c;目前仅支持PNG 1. 概述与背景 阿里通义Z-Image-Turbo WebUI图像快速生成模型是由开发者“科哥”基于DiffSynth Studio框架进行二次开发的高性能AI图像生成工具。该模型在保持高质量输出的同时&#xff0c;显著提升了推理速度&#…

FSMN-VAD实测:10秒静音自动过滤无压力

FSMN-VAD实测&#xff1a;10秒静音自动过滤无压力 在语音识别、会议记录、智能助手等应用中&#xff0c;原始音频往往包含大量无效的静音片段。这些冗余数据不仅浪费存储空间&#xff0c;还会拖慢后续处理流程。如何高效地从长音频中精准提取有效语音段&#xff1f;本文将带你…

FST ITN-ZH中文ITN模型实战|WebUI批量处理文本标准化任务

FST ITN-ZH中文ITN模型实战&#xff5c;WebUI批量处理文本标准化任务 1. 简介与应用场景 1.1 什么是逆文本标准化&#xff08;ITN&#xff09; 逆文本标准化&#xff08;Inverse Text Normalization, ITN&#xff09;是将自然语言中的非规范表达转换为标准格式的过程。在语音…