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

东方博宜OJ 4567:树的根 ← 邻接表 or 链式前向星

【题目来源】
https://oj.czos.cn/p/4567

【题目描述】
一棵有 N 个结点的树,树上结点编号为 1 到 N。
已知树上 N-1 条边,且已知每条边的父子关系。
请编程求出树上根结点的编号。

【输入格式】
第 1 行输入一个整数 N 代表树上结点的数量。(1≤N≤100)。
接下来 N-1 行,每行输入两个整数 X,Y,代表编号为 X 的结点是编号为 Y 的结点的父。​​​​​​​

【输出格式】
输出一个整数,代表树上根结点的编号。​​​​​​​

【输入样例】
7
3 7
4 5
5 2
4 1
3 4
7 6

【输出样例】
3

【数据范围】
1≤N≤100​​​​​​​

【算法分析】
找根的算法思想:遍历所有节点,直至父节点为空的节点,即为根。

【算法代码一:邻接表

#include<bits/stdc++.h>
using namespace std;const int N=1e2+5;
vector<int> v[N];
int fa[N];
int n,x,y;int main() {memset(fa,-1,sizeof fa);cin>>n;for(int i=1; i<n; i++) {cin>>x>>y;fa[y]=x;v[x].push_back(y);}int root=x;while(fa[root]!=-1) {root=fa[root];}cout<<root<<endl;return 0;
}/*
in:
7
3 7
4 5
5 2
4 1
3 4
7 6out:
3
*/

 【算法代码二:链式前向星

#include<bits/stdc++.h>
using namespace std;const int N=1e2+5;
int e[N],ne[N],h[N],idx;
int fa[N];
int n,x,y;void add(int a,int b) {e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}int main() {memset(fa,-1,sizeof fa);memset(h,-1,sizeof h);cin>>n;for(int i=1; i<n; i++) {cin>>x>>y;fa[y]=x;add(x,y);}int root=x;while(fa[root]!=-1) {root=fa[root];}cout<<root<<endl;return 0;
}/*
in:
7
3 7
4 5
5 2
4 1
3 4
7 6out:
3
*/

 




【参考文献】
https://blog.csdn.net/hnjzsyjyj/article/details/155763839
https://blog.csdn.net/hnjzsyjyj/article/details/140138335

 

http://www.jsqmd.com/news/71242/

相关文章:

  • 关于Visual Studio 2022 Git无法使用的解决办法
  • Ruby-saml 因 XML 解析器命名空间处理差异导致 SAML 认证绕过漏洞剖析
  • 准确率和召回率的平衡点
  • 按DDD领域分析Openfeign
  • Python threading.Lock() thread lambda
  • Python 面向对象编程 (OOP) 核心:类、封装与继承
  • 12/10
  • 完整教程:分享一个基于服务端地图服务裁剪的方法
  • Nginx安全配置
  • 并发编程的三大基石:从底层逻辑聊透“同步、互斥与分工”
  • 个人电脑本地私有知识库解决方案:访答知识库全面解析
  • 【Agent】MemOS 源码笔记---(4)---KV Cache
  • 2025.12.10
  • 大数据存储新范式:RustFS与Hadoop生态无缝集成实战指南
  • Ai元人文构想:黑箱之渡,白箱之锚——大行为模型践行意义行为原生
  • 在 .Net 8 WEBAPI 中实现实体框架的 Code First 办法
  • 60
  • Coppersmith 学习笔记
  • python —— 树的遍历 —— 深度优先遍历(先序、中序、后序) —— 非递归方式(使用栈数据结构进行辅助)
  • 【SQL技术】不同数据库引擎 SQL 优化方案剖析 - 详解
  • IntelliJ IDEA 最常用的快捷键
  • C++ 循环结构:控制程序重复执行的核心机制 - 教程
  • ASP.NET 实战:用 CSS 选择器打造一个可搜索、响应式的书籍管理系统 - 教程
  • Python list all files in dir recursivelly
  • python —— 树的遍历 —— 深度优先遍历(先序、中序、后序)
  • springAI集成智谱--流式输出
  • python —— 满二叉树的广度优先遍历
  • 切比雪夫多项式与数值最优化算法收敛率的关系
  • 恰好被k个区间覆盖的点的数量
  • Day59(29)-F:\vs_ai_work\vue-tlias-management