news 2026/5/7 12:51:21

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/5/4 14:08:12

基于AT89C51的proteus数码管仿真电路设计:新手教程

从零开始玩转单片机&#xff1a;用AT89C51在Proteus里点亮数码管你有没有过这样的经历&#xff1f;刚学单片机&#xff0c;手焊电路时一不小心接错线&#xff0c;烧了个LED、冒了股烟……心疼又尴尬。别担心&#xff0c;今天我带你绕开硬件翻车现场&#xff0c;直接在电脑上“搭…

作者头像 李华
网站建设 2026/5/3 15:44:35

三步轻松解决Cursor Pro机器码限制:免费AI编程助手无限额度指南

三步轻松解决Cursor Pro机器码限制&#xff1a;免费AI编程助手无限额度指南 【免费下载链接】cursor-free-everyday 完全免费, 自动获取新账号,一键重置新额度, 解决机器码问题, 自动满额度 项目地址: https://gitcode.com/gh_mirrors/cu/cursor-free-everyday 还在为Cu…

作者头像 李华
网站建设 2026/5/3 22:25:03

基于SpringBoot的新农村信息平台建设——土地资源管理子系统毕设源码+文档+讲解视频

前言 随着乡村振兴战略深入推进&#xff0c;新农村建设中土地资源的规范化管理、高效利用及信息透明化需求日益迫切&#xff0c;但当前农村土地管理存在数据分散混乱、权属登记不清晰、流转流程不规范、动态监管滞后等问题&#xff0c;制约了土地资源的优化配置与农村经济发展。…

作者头像 李华
网站建设 2026/4/23 6:47:59

YOLO目标检测镜像上线,GPU算力加速仅需一步

YOLO目标检测镜像上线&#xff0c;GPU算力加速仅需一步 在智能制造、智慧交通和自动化巡检日益普及的今天&#xff0c;如何让AI“看得更快更准”&#xff0c;已成为系统设计中的关键挑战。传统视觉方案往往受限于算法泛化能力弱、部署流程繁琐、推理延迟高等问题&#xff0c;导…

作者头像 李华
网站建设 2026/4/23 6:45:45

51单片机蜂鸣器外围电路元件选型操作指南

51单片机驱动蜂鸣器&#xff0c;这些外围元件你真的会选吗&#xff1f;在做嵌入式开发时&#xff0c;我们经常遇到这样一个场景&#xff1a;系统功能都调好了&#xff0c;结果一按按键&#xff0c;蜂鸣器“吱”一声响完&#xff0c;MCU却莫名其妙复位了。排查半天才发现——不是…

作者头像 李华