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

题解:洛谷 P8817 [CSP-S 2022] 假期计划

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏算法题解C与Python实现附上汇总贴算法竞赛备考冲刺必刷题C | 汇总【题目来源】洛谷P8817 [CSP-S 2022] 假期计划 - 洛谷【题目描述】小熊的地图上有n nn个点其中编号为1 11的是它的家、编号为2 , 3 , … , n 2, 3, \ldots, n2,3,…,n的都是景点。部分点对之间有双向直达的公交线路。如果点x xx与z 1 z_1z1​、z 1 z_1z1​与z 2 z_2z2​、……、z k − 1 z_{k - 1}zk−1​与z k z_kzk​、z k z_kzk​与y yy之间均有直达的线路那么我们称x xx与y yy之间的行程可转车k kk次通达特别地如果点x xx与y yy之间有直达的线路则称可转车0 00次通达。很快就要放假了小熊计划从家出发去4 44个不同的景点游玩完成5 55段行程后回家家→ \to→景点 A→ \to→景点 B→ \to→景点 C→ \to→景点 D→ \to→家且每段行程最多转车k kk次。转车时经过的点没有任何限制既可以是家、也可以是景点还可以重复经过相同的点。例如在景点 A→ \to→景点 B 的这段行程中转车时经过的点可以是家、也可以是景点 C还可以是景点 D→ \to→家这段行程转车时经过的点。假设每个景点都有一个分数请帮小熊规划一个行程使得小熊访问的四个不同景点的分数之和最大。【输入】第一行包含三个整数n , m , k n, m, kn,m,k分别表示地图上点的个数、双向直达的点对数量、每段行程最多的转车次数。第二行包含n − 1 n - 1n−1个正整数分别表示编号为2 , 3 , … , n 2, 3, \ldots, n2,3,…,n的景点的分数。接下来m mm行每行包含两个正整数x , y x, yx,y表示点x xx和y yy之间有道路直接相连保证1 ≤ x , y ≤ n 1 \le x, y \le n1≤x,y≤n且没有重边自环。【输出】输出一个正整数表示小熊经过的4 44个不同景点的分数之和的最大值。【输入样例】8 8 1 9 7 1 8 2 3 6 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 1【输出样例】27【解题思路】【算法标签】#提高# #图的遍历-BFS#【代码详解】#includebits/stdc.husingnamespacestd;#defineintlonglongconstintN2505;// 最大节点数typedefpairint,intPII;// 存储(权重, 节点编号)对vectorinte[N];// 邻接表存储图intw[N];// 存储每个节点的权重w[1]0其他节点有正权重intans;// 存储最终的最大四元组权重和intn,m,k;// n: 节点数, m: 边数, k: 最大中转次数限制intdist[N][N];// 存储任意两点间的最短距离setPIIst[N];// 对于每个节点i存储满足条件的节点集合按权重排序// 广度优先搜索计算从源点s到所有其他节点的最短距离voidbfs(ints){// 初始化距离数组for(inti1;in;i){dist[s][i]1e9;// 初始化为无穷大}dist[s][s]0;// 源点到自己的距离为0queueintq;q.push(s);// 源点入队while(!q.empty()){intuq.front();q.pop();// 遍历所有邻居节点for(autov:e[u]){// 如果通过u到v的距离更短则更新if(dist[s][v]dist[s][u]1){dist[s][v]dist[s][u]1;q.push(v);}}}}signedmain(){// 输入节点数、边数、最大中转次数kcinnmk;// 输入每个节点的权重从2到n节点1的权重为0for(inti2;in;i){cinw[i];}// 输入图的边for(inti1;im;i){intu,v;cinuv;e[u].push_back(v);e[v].push_back(u);}// 计算所有节点对之间的最短距离for(inti1;in;i){bfs(i);}// 构建每个节点的候选集合// 对于每个节点i收集满足以下条件的节点j// 1. j ! i// 2. 从i到j的距离 k1// 3. 从起点1到j的距离 k1for(inti2;in;i){for(intj2;jn;j){if(ji)// 跳过自身{continue;}// 检查距离限制条件if(dist[i][j]k1dist[1][j]k1){st[i].insert({w[j],j});// 按权重排序插入// 只保留权重最大的3个节点if(st[i].size()3){st[i].erase(st[i].begin());// 删除最小的元素}}}}// 枚举所有可能的(b,c)对for(intb2;bn;b){for(intc2;cn;c){if(b!cdist[b][c]k1)// 满足b和c之间的距离限制{// 枚举节点b的候选节点afor(auto[wa,a]:st[b]){if(a!c)// 确保a不等于c{// 枚举节点c的候选节点dfor(auto[wd,d]:st[c]){// 确保d不等于a,b,cif(d!bd!a){// 更新最大权重和ansmax(ans,w[b]w[c]wawd);}}}}}}}// 输出结果coutansendl;return0;}【运行结果】8 8 1 9 7 1 8 2 3 6 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 1 27

相关文章:

题解:洛谷 P8817 [CSP-S 2022] 假期计划

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大…...

Fire Dynamics Simulator(FDS)火灾模拟完全指南:从零开始掌握专业火灾动力学分析

Fire Dynamics Simulator(FDS)火灾模拟完全指南:从零开始掌握专业火灾动力学分析 【免费下载链接】fds Fire Dynamics Simulator 项目地址: https://gitcode.com/gh_mirrors/fd/fds Fire Dynamics Simulator(FDS&#xff0…...

Android轮播图进阶:手把手教你用com.youth.banner实现指示器与ViewPager2的联动与性能优化

Android轮播图深度优化:基于com.youth.banner的高性能Indicator与ViewPager2联动方案 在移动应用界面设计中,轮播图作为核心视觉元素,其流畅度直接影响用户体验。当用户快速滑动ViewPager2时,Indicator能否实时同步?当…...

Mermaid在线编辑器终极指南:代码驱动图表创作的革命性工具

Mermaid在线编辑器终极指南:代码驱动图表创作的革命性工具 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-ed…...

Qianfan-OCR Java集成开发:SpringBoot服务封装与API调用

Qianfan-OCR Java集成开发:SpringBoot服务封装与API调用 1. 引言 如果你正在开发一个需要处理大量图片文字识别的Java后端系统,Qianfan-OCR可能是个不错的选择。这个教程将带你从零开始,在SpringBoot项目中集成Qianfan-OCR服务,…...

BilibiliDown:3分钟掌握B站视频下载的终极免费解决方案

BilibiliDown:3分钟掌握B站视频下载的终极免费解决方案 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/…...

KUKA iiwa 机器人FRI JAVA编程实战 -- 从官方Demo到自定义控制模式

1. 从官方Demo到自定义控制模式:FRI JAVA编程入门 第一次接触KUKA iiwa的FRI(Fast Robot Interface)JAVA编程时,我完全被官方Demo里那些复杂的类名和方法搞懵了。但经过几个项目的实战,我发现只要掌握几个关键点&#…...

3步解决多显示器窗口混乱:PersistentWindows窗口位置持久化工具终极指南

3步解决多显示器窗口混乱:PersistentWindows窗口位置持久化工具终极指南 【免费下载链接】PersistentWindows fork of http://www.ninjacrab.com/persistent-windows/ with windows 10 update 项目地址: https://gitcode.com/gh_mirrors/pe/PersistentWindows …...

Anime4K终极指南:浏览器中实时观看4K动漫的完整解决方案

Anime4K终极指南:浏览器中实时观看4K动漫的完整解决方案 【免费下载链接】Anime4K A High-Quality Real Time Upscaler for Anime Video 项目地址: https://gitcode.com/gh_mirrors/an/Anime4K 想象一下这样的场景:你珍藏多年的老动漫&#xff0c…...

【STM32】STM32实战笔记:独立看门狗与窗口看门狗的配置与调试(47)

1. 看门狗基础:嵌入式系统的"保险丝" 想象一下你正在开发一款工业控制设备,产线上突然传来警报——设备每隔几天就会莫名其妙死机,必须手动重启才能恢复。这种偶发性故障就像一颗定时炸弹,随时可能造成生产事故。这时候…...

高一被开除、16岁被赶出家门,这个广东小伙做出了中国第一台智能手机,却亲手把公司搞没了

大家好,我是写代码的篮球球痴。今天这篇文章,聊一个中国手机圈最让人又爱又恨的人——黄章(本名黄秀章),魅族科技的创始人。如果你是 2010 年前后入坑数码的老玩家,一定记得这个名字。他在论坛上叫 J.Wong&…...

别再只盯着卫星图了!用Python+PyTorch实战GeoAI四大核心算法(附代码)

别再只盯着卫星图了!用PythonPyTorch实战GeoAI四大核心算法(附代码) 当无人机掠过农田上空,当卫星凝视城市脉络,海量的地理空间数据正以TB级速度涌入服务器。但真正的问题在于:如何让这些像素开口说话&…...

从零开始:UndertaleModTool完全指南,解锁GameMaker游戏无限可能

从零开始:UndertaleModTool完全指南,解锁GameMaker游戏无限可能 【免费下载链接】UndertaleModTool The most complete tool for modding, decompiling and unpacking Undertale (and other GameMaker games!) 项目地址: https://gitcode.com/gh_mirro…...

别再乱配PATH了!Mac上.zshrc、.bash_profile、.bashrc的区别与正确配置姿势(附Flutter/Java实战)

Mac开发者必知:.zshrc、.bash_profile、.bashrc的终极配置指南 刚接触Mac开发的程序员们,是否经常遇到这样的困惑:明明按照教程配置了环境变量,重启终端后却死活不生效?或者在不同终端工具(比如Terminal和i…...

USRP硬件驱动(UHD):软件定义无线电的终极开源解决方案

USRP硬件驱动(UHD):软件定义无线电的终极开源解决方案 【免费下载链接】uhd The USRP™ Hardware Driver Repository 项目地址: https://gitcode.com/gh_mirrors/uh/uhd 想象一下,你手中有一台能够接收和发射从50MHz到6GHz…...

如何通过PS2EXE将PowerShell脚本编译为可执行文件:终极指南

如何通过PS2EXE将PowerShell脚本编译为可执行文件:终极指南 【免费下载链接】PS2EXE Module to compile powershell scripts to executables 项目地址: https://gitcode.com/gh_mirrors/ps/PS2EXE 你是否曾经希望将PowerShell脚本转换为独立的Windows可执行文…...

为什么“多路径投票”能降低大模型幻觉?

大语言模型(LLMs)的飞速发展,让其在内容生成、逻辑推理、知识问答等领域实现了突破性应用,但“幻觉”问题始终是制约其可靠性的关键瓶颈——模型常常生成看似流畅合理、实则与事实不符的内容,小到编造人名地名&#xf…...

如何从Spotify下载音乐并保存完整元数据:完整指南

如何从Spotify下载音乐并保存完整元数据:完整指南 【免费下载链接】spotify-downloader Download your Spotify playlists and songs along with album art and metadata (from YouTube if a match is found). 项目地址: https://gitcode.com/gh_mirrors/spotifyd…...

如何用Python快速创建惊艳的三维可视化:PyVista完整指南

如何用Python快速创建惊艳的三维可视化:PyVista完整指南 【免费下载链接】pyvista 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK) 项目地址: https://gitcode.com/gh_mirrors/py/pyvista 想要在Pytho…...

5步掌握novelWriter:开源小说写作神器的高效创作指南

5步掌握novelWriter:开源小说写作神器的高效创作指南 【免费下载链接】novelWriter novelWriter is an open source plain text editor designed for writing novels. 项目地址: https://gitcode.com/gh_mirrors/no/novelWriter novelWriter是一款专为小说创…...

Requests库超时设置全攻略:从timeout参数到高级重试,告别WinError 10060

Requests库超时设置全攻略:从timeout参数到高级重试,告别WinError 10060 当你在深夜调试爬虫脚本时,突然看到屏幕上跳出TimeoutError: [WinError 10060]的红色报错,那种感觉就像在高速公路上突然爆胎。作为Python开发者&#xff0…...

Pandas大数据处理:7个优化技巧提升性能

1. 大数据集处理的痛点与Pandas优势当数据集超过内存容量时,常规的Pandas操作会变得异常缓慢甚至崩溃。我曾处理过一个电商用户行为数据集,原始CSV文件达到28GB,直接用pd.read_csv()加载导致内核频繁重启。这促使我系统研究了Pandas处理大数据…...

ComfyUI InstantID:AI人脸身份锚定的艺术与科学

ComfyUI InstantID:AI人脸身份锚定的艺术与科学 【免费下载链接】ComfyUI_InstantID 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_InstantID 在AI图像生成的浪潮中,我们面临着一个核心挑战:如何在保持人物身份特征的同时&a…...

终极免费编程游戏指南:如何通过CodeCombat从零掌握编程技能

终极免费编程游戏指南:如何通过CodeCombat从零掌握编程技能 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat CodeCombat是一款革命性的编程学习游戏,它巧妙地将编程知识融入…...

AB Download Manager终极指南:多线程下载与智能文件管理完全教程

AB Download Manager终极指南:多线程下载与智能文件管理完全教程 【免费下载链接】ab-download-manager A Download Manager that speeds up your downloads 项目地址: https://gitcode.com/GitHub_Trending/ab/ab-download-manager AB Download Manager是一…...

从UVM Testbench到门级仿真:手把手教你用VCS +vcs+initreg+random实现可复现的随机初始化

从UVM Testbench到门级仿真:VCS随机初始化实战指南 芯片验证工程师们常遇到一个棘手问题:RTL仿真完美通过的测试用例,在门级仿真时却因寄存器初始状态不一致而失败。本文将深入探讨如何利用VCS的vcsinitregrandom选项,构建既模拟真…...

Stata实证分析:如何用esttab优雅地隐藏行业/年份虚拟变量(附完整代码)

Stata实证分析:优雅隐藏行业与年份虚拟变量的高阶技巧 在学术论文或商业分析报告中,我们经常需要在回归模型中引入行业、年份等虚拟变量来控制固定效应。但直接输出所有虚拟变量的系数会导致结果表格臃肿不堪,关键变量的估计结果反而被淹没在…...

告别复制粘贴!用按键精灵2014.06 + Node.js 本地搭建文本查重服务(附完整源码)

本地化文本查重系统:基于Node.js与按键精灵的深度整合方案 在信息爆炸的时代,文本查重已成为内容创作者、学术研究者和数据分析师的刚需。市面上虽有各类在线查重工具,但普遍存在响应延迟、隐私泄露风险和服务不稳定等问题。本文将带你从零构…...

VSCode 2026权限模型重构全披露,基于OAuth 2.1+OPA策略引擎的动态授权架构,附可运行Policy-as-Code示例

更多请点击: https://intelliparadigm.com 第一章:VSCode 2026 实时协作权限控制 VSCode 2026 引入了基于角色的细粒度实时协作权限模型,支持多人编辑同一文件时对光标、编辑、保存、调试等操作实施动态策略管控。该能力依托内置的 collab-p…...

VSCode 2026医疗合规检查失效的5大隐性陷阱,第4个导致某三甲医院AI辅助诊断系统被叫停——附官方补丁热修复方案(2026.3.15紧急发布)

更多请点击: https://intelliparadigm.com 第一章:VSCode 2026医疗合规检查失效的全局性警示 2026年3月,全球多家三甲医院信息科与医疗AI研发团队报告:VSCode最新稳定版(v1.98.0)中预装的HIPAA/GB/T 22239…...