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

GESP认证C++编程真题解析 | P10109 [GESP202312 六级] 工作沟通

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

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

适合人群:

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

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


【题目来源】

洛谷:[P10109 GESP202312 六级] 工作沟通 - 洛谷

【题目描述】

某公司有N NN名员工,编号从0 00N − 1 N-1N1。其中,除了0 00号员工是老板,其余每名员工都有一个直接领导。我们假设编号为i ii的员工的直接领导是f i f_ifi

该公司有严格的管理制度,每位员工只能受到本人或直接领导或间接领导的管理。具体来说,规定员工x xx可以管理员工y yy,当且仅当x = y x=yx=y,或x = f y x=f_yx=fy,或x xx可以管理f y f_yfy。特别地,0 00号员工老板只能自我管理,无法由其他任何员工管理。

现在,有一些同事要开展合作,他们希望找到一位同事来主持这场合作,这位同事必须能够管理参与合作的所有同事。如果有多名满足这一条件的员工,他们希望找到编号最大的员工。你能帮帮他们吗?

【输入】

第一行一个整数N NN,表示员工的数量。

第二行N − 1 N - 1N1个用空格隔开的正整数,依次为f 1 , f 2 , … f N − 1 f_1,f_2,\dots f_{N−1}f1,f2,fN1

第三行一个整数Q QQ,表示共有Q QQ场合作需要安排。

接下来Q QQ行,每行描述一场合作:开头是一个整数m mm2 ≤ m ≤ N 2 \le m \le N2mN),表示参与本次合作的员工数量;接着是m mm个整数,依次表示参与本次合作的员工编号(保证编号合法且不重复)。

保证公司结构合法,即不存在任意一名员工,其本人是自己的直接或间接领导。

【输出】

输出Q QQ行,每行一个整数,依次为每场合作的主持人选。

【输入样例】

5 0 0 2 2 3 2 3 4 3 2 3 4 2 1 4

【输出样例】

2 2 0

【算法标签】

《洛谷 P10109 工作沟通》 #图论# #图遍历# #GESP# #2023#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;constintN=305;// 最大节点数intn,q;// n: 节点数, q: 查询次数vector<int>g[N];// 邻接表存储树boolst[N];// 访问标记数组// 深度优先搜索,标记从u出发能到达的所有节点voiddfs(intu){st[u]=1;// 标记当前节点for(inti=0;i<g[u].size();i++){st[g[u][i]]=1;// 标记子节点dfs(g[u][i]);// 递归遍历}}intmain(){// 输入节点数cin>>n;// 输入树的n-1条边for(inti=1;i<n;i++){intx;cin>>x;// 节点i的父节点g[x].push_back(i);// 建立从父节点x到子节点i的边}// 输入查询次数cin>>q;// 处理每个查询while(q--){intm;// 查询中包含的节点数cin>>m;vector<int>ve;// 存储查询节点// 输入查询节点for(inti=1;i<=m;i++){intx;cin>>x;ve.push_back(x);}// 从大到小遍历节点编号for(inti=n-1;i>=0;i--){// 重置访问标记memset(st,0,sizeof(st));// 从节点i开始DFS,标记所有可达节点dfs(i);// 检查是否所有查询节点都被标记boolflag=1;for(intj=0;j<ve.size();j++){if(st[ve[j]]==false)// 有节点未标记{flag=0;break;}}// 如果所有查询节点都在i的子树中if(flag){cout<<i<<endl;// 输出当前节点编号break;// 找到答案,退出循环}}}return0;}

【运行结果】

5 0 0 2 2 3 2 3 4 2 3 2 3 4 2 2 1 4 0
http://www.cnnetsun.cn/news/182862.html

相关文章:

  • 智慧树刷课插件:解放双手的智能学习助手
  • 还在手动调参?Open-AutoGLM开源地址发布,一键实现大模型自主推理与优化
  • 智慧树刷课插件终极指南:3步实现自动化学习
  • 【Open-AutoGLM技术深度解析】:揭秘下一代自动化大模型推理引擎核心原理
  • TranslucentTB中文界面设置完全指南:轻松实现任务栏透明美化
  • RePKG完全指南:解锁Wallpaper Engine壁纸资源提取的3大技巧
  • 还在等邀请码?Open-AutoGLM白名单申请技巧大公开,90%的人都忽略了这一步
  • elementUI的select下拉框如何下拉加载数据?
  • 5步彻底解决TranslucentTB安装失败:从诊断到完美运行全攻略
  • 教你使用服务器搭建一款基于 Rust 开发的跨平台文件管理器 Spacedrive
  • 深度拆解人机协同三大架构设计,教你打造高可用交互系统
  • 解放Dell G15散热潜能:轻量级开源控制中心完全指南
  • 为什么99%的团队在Open-AutoGLM部署上失败?真相令人震惊
  • 智慧树学习助手:自动化网课管理解决方案
  • B站视频转文字工具:3分钟实现智能内容提取的完整指南
  • Blender3mfFormat插件:3D打印工作流的智能升级指南
  • Blender 3MF插件终极指南:从零开始掌握3D打印文件格式转换
  • 强力解锁:3步搞定Wallpaper Engine壁纸资源提取终极方案
  • 纪念币预约自动化工具完整使用指南:告别手动抢购时代
  • 多设备微信终极指南:平板模式双开完全手册
  • Blender 3MF插件实战指南:5分钟掌握3D打印文件格式转换
  • QuickLook OfficeViewer:无需Office即可高效预览文档的终极解决方案
  • NVIDIA显卡性能全解锁:深度调优指南助你游戏体验飙升
  • RePKG终极指南:高效管理Wallpaper Engine资源的最佳工具
  • League Akari:重新定义你的英雄联盟游戏体验
  • WeChatPad终极指南:免费实现微信双设备同时登录的完整方案
  • 算法训练营Day++
  • Open-AutoGLM vs 闭源方案:4个维度全面对比,谁才是未来王者?
  • 智慧树刷课插件终极使用指南:3步实现自动化学习
  • 微信多设备同时登录终极方案:简单三步告别设备限制困扰