news 2026/7/15 0:21:38

GESP认证C++编程真题解析 | P11378 [GESP202412 七级] 燃烧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GESP认证C++编程真题解析 | P11378 [GESP202412 七级] 燃烧

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:GESP认证C++编程真题解析 | 汇总


【题目来源】

洛谷:P11378 [GESP202412 七级] 燃烧 - 洛谷

【题目描述】

小杨有一棵包含n nn个节点的树,其中节点的编号从1 11n nn。节点i ii的权值为a i a_iai

小杨可以选择一个初始节点引燃,每个燃烧的节点会将其相邻节点中权值严格小于自身权值的节点也引燃,火焰会在节点间扩散直到不会有新的节点被引燃。

小杨想知道在合理选择初始节点的情况下,最多可以燃烧多少个节点。

【输入】

第一行包含一个正整数n nn,代表节点数量。

第二行包含n nn个正整数a 1 , a 2 , … , a n a_1,a_2,\dots,a_na1,a2,,an,代表节点权值。

之后n − 1 n-1n1行,每行包含两个正整数u i , v i u_i,v_iui,vi,代表存在一条连接节点u i u_iuiv i v_ivi的边。

【输出】

输出一个正整数,代表最多燃烧的节点个数。

【输入样例】

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

【输出样例】

3

【算法标签】

《洛谷 P11378 燃烧》 #动态规划DP# #树形DP# #树的遍历# #GESP# #2024#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=100005;// 最大节点数constintM=N*2;// 无向图边数要×2intn;// 节点数量inta[N];// a[i]: 节点i的值intdp[N];// dp[i]: 以节点i为起点的最长递降路径长度intans;// 全局答案,最长路径长度inth[N],e[M],ne[M],idx;// 邻接表存储图// 添加一条a到b的无向边voidadd(inta,intb){e[idx]=b;// 存储终点ne[idx]=h[a];// 头插法h[a]=idx++;// 更新头节点}// 深度优先搜索,返回以u为起点的最长递降路径长度intdfs(intu){// 记忆化:如果已经计算过,直接返回结果if(dp[u]!=-1){returndp[u];}// 至少包含自己,所以初始长度为1intres=1;// 遍历u的所有邻居节点for(inti=h[u];i!=-1;i=ne[i]){intj=e[i];// 邻居节点j// 如果节点u的值大于邻居节点j的值,说明可以向下延伸if(a[u]>a[j]){// 递归计算以j为起点的路径长度// 加上u节点自身res+=dfs(j);}}// 记忆化存储结果dp[u]=res;returndp[u];}intmain(){cin>>n;// 输入节点数// 初始化邻接表memset(h,-1,sizeof(h));// 输入每个节点的值for(inti=1;i<=n;i++){cin>>a[i];}// 输入n-1条边,构建树for(inti=1;i<n;i++){intu,v;cin>>u>>v;add(u,v);// 添加u->v的边add(v,u);// 添加v->u的边,因为是无向图}// 初始化dp数组为-1,表示未计算memset(dp,-1,sizeof(dp));// 以每个节点为起点计算最长递降路径ans=0;// 初始化答案为0for(inti=1;i<=n;i++){ans=max(ans,dfs(i));}// 输出最长递降路径长度cout<<ans<<endl;return0;}

【运行结果】

5 6 2 3 4 5 1 2 2 3 2 5 1 4 3
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 17:12:02

Music-You:体验Material Design 3风格的音乐播放器

Music-You&#xff1a;体验Material Design 3风格的音乐播放器 【免费下载链接】music-you &#x1fa97; 一个美观简约的Material Design 3 (Material You) 风格pc音乐播放器 项目地址: https://gitcode.com/GitHub_Trending/mu/music-you 想要一款既美观又实用的音乐播…

作者头像 李华
网站建设 2026/6/26 22:13:34

Elasticsearch拼音搜索插件完整配置与实战指南

Elasticsearch拼音搜索插件完整配置与实战指南 【免费下载链接】analysis-pinyin &#x1f6f5; 本拼音分析插件用于汉字与拼音之间的转换。 项目地址: https://gitcode.com/infinilabs/analysis-pinyin 还在为中文拼音搜索效果不佳而烦恼&#xff1f;本指南将带你全面掌…

作者头像 李华
网站建设 2026/6/29 0:22:24

Positron 数据科学工作台:开启高效编程新时代

在数据科学快速发展的今天&#xff0c;一个优秀的开发环境能显著提升工作效率。Positron作为专为数据科学家设计的集成开发平台&#xff0c;通过创新的功能和流畅的体验&#xff0c;正在重新定义数据科学工作方式。 【免费下载链接】positron Positron, a next-generation data…

作者头像 李华
网站建设 2026/7/6 13:47:45

从零实现SPI Flash的erase功能驱动代码

从零实现SPI Flash的erase功能驱动&#xff1a;不只是写代码&#xff0c;更是理解存储的本质你有没有遇到过这种情况——OTA升级失败&#xff0c;设备卡在启动阶段&#xff1b;或者配置参数突然丢失&#xff0c;系统行为变得诡异&#xff1f;很多时候&#xff0c;这些看似“玄学…

作者头像 李华
网站建设 2026/7/12 4:36:38

Shower幻灯片引擎:四种主题类型深度解析与应用指南

Shower幻灯片引擎&#xff1a;四种主题类型深度解析与应用指南 【免费下载链接】shower Shower HTML presentation engine 项目地址: https://gitcode.com/gh_mirrors/sh/shower Shower作为一款基于HTML、CSS和JavaScript的现代化幻灯片引擎&#xff0c;为演示者提供了强…

作者头像 李华