2025年3月GESP真题及题解(C++七级): 图上移动

2025年3月GESP真题及题解(C++七级): 图上移动

题目描述

小 A 有一张包含n nn个结点与m mm条边的无向图,结点以1 , 2 , … , n 1, 2, \dots, n1,2,,n标号。小 A 会从图上选择一个结点作为起点,每一步移动到某个与当前小 A 所在结点相邻的结点。对于每个结点i ii1 ≤ i ≤ n 1 \leq i \leq n1in),小 A 想知道从结点i ii出发恰好移动1 , 2 , … , k 1, 2, \dots, k1,2,,k步之后,小 A 可能会位于哪些结点。由于满足条件的结点可能有很多,你只需要求出这些结点的数量。

输入格式

第一行,三个正整数n , m , k n, m, kn,m,k,分别表示无向图的结点数与边数,最多移动的步数。

接下来m mm行,每行两个正整数u i , v i u_i, v_iui,vi,表示图中的一条连接结点u i u_iuiv i v_ivi的无向边。

输出格式

n nn行,第i ii行 (1 ≤ i ≤ n 1 \leq i \leq n1in) 包含k kk个整数,第j jj个整数 (1 ≤ j ≤ k 1 \leq j \leq k1jk) 表示从结点i ii出发恰好移动j jj步之后可能位置的结点数量。

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

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

对于另外20 % 20\%20%的测试点,保证1 ≤ n ≤ 50 , 1 ≤ m ≤ 50 1 \leq n \leq 50, 1 \leq m \leq 501n50,1m50

对于所有测试点,保证1 ≤ n ≤ 500 , 1 ≤ m ≤ 500 , 1 ≤ k ≤ 20 , 1 ≤ u i , v i ≤ n 1 \leq n \leq 500, 1 \leq m \leq 500, 1 \leq k \leq 20, 1 \leq u_i, v_i \leq n1n500,1m500,1k20,1ui,vin

思路分析

本题要求计算从每个结点出发,恰好移动 1 到 k 步后可能到达的不同结点数量。由于 k 较小(≤20),可以采用动态规划方法对每个起点单独计算。

对于每个起点 s:

  • 定义状态dp[j][v]表示从 s 出发恰好 j 步能否到达结点 v。
  • 初始状态:dp[0][s] = true,其余为 false。
  • 状态转移:对于步数 j 从 1 到 k,遍历每条边 (u, v),若dp[j-1][u]为 true,则dp[j][v]置为 true;同理,若dp[j-1][v]为 true,则dp[j][u]置为 true。因为是无向图,每条边可以双向行走。
  • 最终对于每个 j,统计dp[j][v]中 true 的数量即为答案。

时间复杂度:共 n 个起点,每个起点进行 k 轮转移,每轮遍历 m 条边,总复杂度 O(n * k * m),在题目数据范围(n,m ≤ 500, k ≤ 20)下完全可行。

代码实现

#include<iostream>#include<cstring>usingnamespacestd;constintMAXN=505;// 最大结点数constintMAXK=25;// 最大步数+5constintMAXM=505;// 最大边数booldp[MAXK][MAXN];// dp[步数][结点]:从当前起点出发恰好j步能否到达该结点pair<int,int>edges[MAXM];// 存储所有边intmain(){intn,m,k;cin>>n>>m>>k;// 读入边for(inti=0;i<m;i++){intu,v;cin>>u>>v;edges[i]={u,v};// 存为pair方便使用}// 对每个起点分别计算for(intstart=1;start<=n;start++){// 初始化dp数组为falsememset(dp,0,sizeof(dp));// 0步时只能到达起点自身dp[0][start]=true;// 动态规划:计算恰好j步的可达性for(intj=1;j<=k;j++){// 遍历每条边进行转移for(inti=0;i<m;i++){intu=edges[i].first,v=edges[i].second;// 如果上一步能到达u,则这一步可以通过边(u,v)到达vif(dp[j-1][u]){dp[j][v]=true;}// 无向图,反向同理if(dp[j-1][v]){dp[j][u]=true;}}}// 输出结果:对于每个步数j,统计可达结点数量for(intj=1;j<=k;j++){intcnt=0;for(intv=1;v<=n;v++){if(dp[j][v])cnt++;}cout<<cnt;if(j<k)cout<<" ";// 行内空格分隔}cout<<endl;// 换行进入下一个起点}return0;}

功能分析

  1. 输入处理

    • 读取结点数 n、边数 m 和最大步数 k。
    • 存储 m 条无向边。
  2. 核心计算

    • 外层循环遍历每个起点 start(1 到 n)。
    • 对每个起点,使用二维布尔数组 dp 记录可达性。
    • 动态规划过程模拟了所有可能的移动路径(允许重复访问结点和边)。
    • 通过遍历所有边进行状态转移,确保考虑所有可能的移动。
  3. 输出结果

    • 对每个起点,输出 k 个整数,分别表示移动 1 到 k 步后可能位置的数量。
  4. 算法特点

    • 利用 k 较小的条件,采用朴素的动态规划即可高效求解。
    • 每个起点独立计算,逻辑清晰,易于实现。
    • 正确处理无向边和自环(如果存在)的情况。
  5. 复杂度

    • 时间复杂度:O(n * k * m),最大为 500 × 20 × 500 = 5 × 10^6,运行速度快。
    • 空间复杂度:O(k * n + m),主要用于存储 dp 数组和边列表。

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

#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/1166142.shtml

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

相关文章

如何用fft npainting lama做干净的背景替换?实测分享

如何用fft npainting lama做干净的背景替换&#xff1f;实测分享 1. 背景与需求分析 在图像处理和内容创作领域&#xff0c;背景替换是一项高频且关键的任务。无论是电商产品图去底、人像摄影后期&#xff0c;还是广告设计中的场景合成&#xff0c;都需要一种高效、精准且自然…

NotaGen完整教程:从安装到专业级音乐生成

NotaGen完整教程&#xff1a;从安装到专业级音乐生成 1. 引言 1.1 学习目标 本文将系统性地介绍 NotaGen —— 一款基于大语言模型&#xff08;LLM&#xff09;范式构建的高质量古典符号化音乐生成工具。通过本教程&#xff0c;您将掌握从环境部署、WebUI操作、参数调优到实…

2025年3月GESP真题及题解(C++七级): 等价消除

2025年3月GESP真题及题解(C七级): 等价消除 题目描述 小 A 有一个仅包含小写英文字母的字符串 S S S。 对于一个字符串&#xff0c;如果能通过每次删去其中两个相同字符的方式&#xff0c;将这个字符串变为空串&#xff0c;那么称这个字符串是可以被等价消除的。 小 A 想知…

5分钟部署AI写作大师:Qwen3-4B-Instruct一键开启高智商创作

5分钟部署AI写作大师&#xff1a;Qwen3-4B-Instruct一键开启高智商创作 1. 项目背景与核心价值 随着大模型技术的快速发展&#xff0c;轻量化、高性能的语言模型正逐步成为个人开发者和中小企业实现智能化内容生成的核心工具。在众多开源模型中&#xff0c;Qwen/Qwen3-4B-Ins…

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

2025年3月GESP真题及题解(C八级): 上学 题目描述 C 城可以视为由 nnn 个结点与 mmm 条边组成的无向图。 这些结点依次以 1,2,…,n1, 2, \ldots, n1,2,…,n 标号&#xff0c;边依次以 1≤i≤m1 \leq i \leq m1≤i≤m 连接边号为 uiu_iui​ 与 viv_ivi​ 的结点&#xff0c;长度…

检测结果不准确?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;”他…