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

2024年12月GESP真题及题解(C++八级): 树上移动

2024年12月GESP真题及题解(C++八级): 树上移动

题目描述

小杨有一棵包含n nn个节点的树,其中节点的编号从1 11n nn,每个节点的颜色要么是白色要么是黑色,小杨可以任意选择节点s ss和节点t tt并从节点s ss出发移动到节点t tt,移动过程中小杨不能够经过重复节点。

小杨希望自己在至多经过k kk个黑色节点的前提下,经过的总节点数尽可能多,请你帮小杨选择经过最多的节点数是多少。

输入格式

第一行包含两个正整数n , k n,kn,k,代表节点数量和至多经过的黑色节点数。

第二行包含n nn个正整数a 1 , a 2 , … , a n a_1,a_2,\dots,a_na1,a2,,an,代表节点颜色,如果a i = 0 a_i=0ai=0,代表节点颜色为白色,如果a i = 1 a_i=1ai=1,代表节点颜色为黑色。

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

输出格式

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

输入输出样例 1
输入 1
5 1 0 0 1 1 1 1 2 2 3 2 5 1 4
输出 1
3
说明/提示
子任务编号数据点占比n nnk kk特殊性质
1 1120 % 20\%20%≤ 100 \leq 100100≤ 100 \leq 100100树的形态为一条链
2 2220 % 20\%20%≤ 1000 \leq 100010000 00
3 3360 % 60\%60%≤ 1000 \leq 10001000≤ 1000 \leq 10001000

对于全部数据,保证有1 ≤ n ≤ 1000 1\leq n\leq 10001n10000 ≤ k ≤ 1000 0\leq k\leq 10000k10000 ≤ a i ≤ 1 0\leq a_i\leq 10ai1

思路分析

  1. 问题理解
    在给定的树上寻找一条简单路径(无重复节点),使得路径上黑色节点的数量不超过k,并且路径的节点数尽可能多。

  2. 核心思路

    • 树中任意简单路径由两个端点唯一确定。
    • 枚举每个节点作为路径起点,通过 BFS 计算从该起点到所有其他节点的距离和黑色节点数。
    • 对于每一对起点和终点,检查黑色节点数是否不超过k,并更新最大节点数。
  3. 算法步骤

    • 读取输入,构建树的邻接表。
    • 初始化答案ans = 0
    • 对每个节点i(作为起点)执行 BFS:
      • 初始化距离数组d和黑色节点计数数组b
      • 起点i的距离为 0,黑色节点数为c[i]
      • 使用队列进行 BFS,对于每个访问的节点u,检查从iu的路径是否满足条件,并更新ans
      • 对于u的每个未访问邻居v,更新距离和黑色节点数,并入队。
    • 输出ans

代码实现

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn,k;cin>>n>>k;// 读取节点数和允许的最大黑色节点数vector<int>c(n+1);// 节点颜色,c[i] = 0 白色,1 黑色for(inti=1;i<=n;++i){cin>>c[i];}vector<vector<int>>g(n+1);// 邻接表存储树for(inti=0;i<n-1;++i){intu,v;cin>>u>>v;g[u].push_back(v);g[v].push_back(u);}intans=0;// 记录答案(最多经过的节点数)// 枚举每个节点作为路径起点for(inti=1;i<=n;++i){vector<int>d(n+1,-1);// d[j] 表示从 i 到 j 的边数(距离)vector<int>b(n+1,0);// b[j] 表示从 i 到 j 路径上的黑色节点数queue<int>q;// 起点初始化d[i]=0;b[i]=c[i];// 路径包含起点,计入其颜色q.push(i);while(!q.empty()){intu=q.front();q.pop();// 当前路径从 i 到 u 的黑色节点数满足条件,更新答案// 经过的节点数 = 距离 + 1if(b[u]<=k){ans=max(ans,d[u]+1);}// 遍历邻居节点for(intv:g[u]){if(d[v]==-1){// 未访问过d[v]=d[u]+1;// 距离增加一条边b[v]=b[u]+(c[v]==1?1:0);// 累加黑色节点数q.push(v);}}}}cout<<ans<<endl;// 输出结果return0;}

功能分析

  1. 复杂度

    • 时间复杂度:O(n²)。每个起点执行一次 BFS,每次 BFS 访问所有节点,共 n 个起点。
    • 空间复杂度:O(n²)。邻接表存储 O(n) 条边,BFS 中使用 O(n) 的临时数组。
  2. 注意事项

    • 路径可以是单个节点(起点等于终点)。
    • 如果没有任何路径满足黑色节点数不超过k,则输出 0。
    • 使用-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.jsqmd.com/news/258690/

相关文章:

  • 基于STM32单片机智能环境监控温湿度CO2光照PM2.5无线设计26-029
  • 基于STM32单片机智能炉温温度PID控制系统设计DIY21-615
  • 深度测评MBA必备AI论文网站TOP10:开题报告与文献综述全解析
  • 基于STM32单片机共享无线充电锂电池充电宝系统设计DIY21-640
  • LangGraph 科技详解:基于图结构的 AI 工作流与多智能体编排框架
  • 2026-2040 年度贾子智慧 AI 战略落地任务分解表
  • Agent设计模式学习(基于langchain4j实现)(4) - 并行工作流
  • 达梦数据库部署安装故障一
  • 大庆市萨尔图龙凤让胡路红岗大同英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 大庆市林甸肇源肇州杜尔伯特英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 讲讲浩明饮品是否可靠,排名情况深度剖析 - 工业品牌热点
  • 深度测评8个AI论文软件,专科生轻松搞定毕业论文!
  • 2026 出国英语雅思培训一对一辅导机构哪家好?权威口碑排名 + 提分效果深度解析 - 老周说教育
  • 【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机
  • 2026 全国英语雅思培训辅导机构排行榜:权威深度测评,靠谱机构高性价比推荐​ - 老周说教育
  • 2026年薄膜开关厂家实力推荐榜:PET/亚克力/轻触/PC/PVC薄膜开关面板及按键开关全系供应 - 品牌推荐官
  • 英语广州英语雅思培训教育机构哪里最好?2026 高分考生首选榜单,个性化方案推荐 - 老周说教育
  • 2026 年膨胀仪厂家推荐榜:湘潭市仪器仪表有限公司 ,高温卧式/低温/立式/线性/热/推杆式膨胀仪全系供应 - 品牌推荐官
  • 苏州市姑苏虎丘吴中相城吴江区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜推荐 - 老周说教育
  • Google offers a range of agent/AI development skills and tools. - ukyo-
  • 一个AI客服,连续365天对同一个用户说:“我理解你的痛苦。”——软件测试视角下的反思
  • 吐血推荐10个AI论文工具,MBA轻松搞定毕业论文!
  • 声纹测试中的伦理边界:当AI替父亲说出“你该回家了”
  • 2026 广州英语雅思培训机构靠谱排行榜:权威深度测评 5 家优质机构​排名 - 老周说教育
  • 2026年清洁度检测设备推荐品牌与实力厂家 - 工业仪器权威说
  • 详细介绍:7种在iPhone和Mac之间传输文件的最佳方法
  • 双鸭山市尖山岭东宝山四方台英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 基于YOLOV8的车辆检测和追踪系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 2026年广东商标答辩公司推荐榜:商标注册 /商标驳回复审 /商标异议 /购买商标 /商标申请服务机构精选 - 品牌推荐官
  • 殷桃新作面世,一出场就杀疯了,观众:她太会演了!