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

东方博宜OJ 4567:树的根 ← 并查集

【题目来源】
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​​​​​​​

【算法分析】
● 找根的算法思想一:遍历所有节点,直至父节点为空的节点,即为根。详见:https://blog.csdn.net/hnjzsyjyj/article/details/155789364

● 找根的算法思想二:并查集 → https://blog.csdn.net/hnjzsyjyj/article/details/146941814
注意,在此题并查集 merge 函数的声明中,是 pre[b]=a,而不是 pre[a]=b。

【算法代码:并查集

#include <bits/stdc++.h>
using namespace std;const int maxn=1e2+5;
int pre[maxn];int find(int x) {if(x!=pre[x]) pre[x]=find(pre[x]);return pre[x];
}void merge(int x,int y) {int a=find(x);int b=find(y);if(a!=b) pre[b]=a;
}int main() {int n,x,y;cin>>n;for(int i=1; i<=n; i++) pre[i]=i;for(int i=1; i<n; i++) {cin>>x>>y;merge(x,y);}for(int i=1; i<=n; i++) {if(pre[i]==i) cout<<i<<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/155789364
https://blog.csdn.net/hnjzsyjyj/article/details/155763839
https://blog.csdn.net/hnjzsyjyj/article/details/140138335
 

http://www.rkmt.cn/news/82022.html

相关文章:

  • 实验室净化工程公司怎么选?2025净化工程公司推荐榜单 - 栗子测评
  • 净化工程公司哪家好?2025食品净化工程公司综合榜单 - 栗子测评
  • 2025电子净化工程公司综合实力榜单 - 栗子测评
  • 2025年下半年四川成都植物油工厂综合推荐指南 - 2025年11月品牌推荐榜
  • 2025.12.11日5:10-aboveboard光明正大的
  • Java 在企业级应用中的架构与性能优化实践
  • 302 天前
  • Unlock Full VOLVO Diagnostic Capabilities with VXDIAG Authorization License for VCX SE Multi Series
  • 洛谷P10953 逃不掉的路 题解 边双连通分量(缩点)+ LCA
  • 无法在Debian13 VSCode中使用fcitx5输入中文
  • python基础
  • Old-Java类集框架随笔
  • Git 中文文件名显示为转义码(乱码)的解决方案
  • Windows-GameBar-ErrorLog
  • 记录一些波波的话
  • 2025最新结构胶品牌推荐!国内优质结构胶权威榜单发布,资质服务双优助力高品质建筑山东结构胶服务公司推荐 - 全局中转站
  • 2025最新免钉胶推荐!国内优质免钉胶品牌权威榜单发布,环保性能与粘结强度双优助力高效装修 - 全局中转站
  • 2025 最新美缝剂品牌 / 厂家 TOP5 评测!环保品质 + 技术创新权威榜单发布,匠心赋能家居装饰新体验 - 全局中转站
  • containerd base_runtime_spec
  • AI元人文构想:从“伦理规范”向“技术合标”的范式扩展
  • Luogu P9165 「INOH」Round 1 - 意外
  • 大作业笔记-2
  • 散修带你入门鸿蒙应用开发基础第六节:变量的作用域与生命周期 - 鸿蒙
  • 提升视频语义分割标注效率的新方法
  • Buuctf-babyheap_0ctf_2017
  • python:用argparse模块解析命令行参数
  • BM25Okap
  • Original Alientech KESS3 Slave 6-Month Subscription: Diagnose Tune European/American Vehicles
  • 2025年最新!实验室专用水处理设备厂家推荐及联系方式汇总 - 极欧测评
  • Pygubu-Designer:Python GUI开发