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

题解:AcWing 517 信息传递

【题目来源】

AcWing:517. 信息传递 - AcWing题库

【题目描述】

\(n\) 个同学(编号为\(1\)\(n\))正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 \(i\) 的同学的信息传递对象是编号为 \(T_i\) 的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中,所有人会同时将自己当前所知的生日信息告诉各自的信息传递对象(注意:可能有人可以从若干人那里获取信息,但是每人只会把信息告诉一个人,即自己的信息传递对象)。当有人从别人口中得知自己的生日时,游戏结束。请问该游戏一共可以进行几轮?

【输入】

输入共\(2\)行。第\(1\)行包含\(1\)个正整数\(n\),表示\(n\) 个人。第\(2\)行包含\(1\sim n\),其中第\(i\)个整数\(T_i\)表示编号为\(i\)的同学的信息传递对象是编号为\(T_i\) 的同学,\(T_i\le n\)\(T_i\neq i\)。数据保证游戏一定会结束。

【输出】

输出共\(1\)行,包含\(1\)个整数,表示游戏一共可以进行多少轮。

【输入样例】

5
2 4 2 3 1

【输出样例】

3

【算法标签】

《AcWing 517 信息传递》 #并查集# #DFS# #找环#

【代码详解】

#include <bits/stdc++.h>
using namespace std;// 定义常量 N 和 INF,N 表示最大节点数,INF 表示无穷大
const int N = 200010, INF = 1e9;// ind 数组记录每个节点的入度,h 数组记录每个节点指向的下一个节点
int ind[N], h[N];// 队列 q 用于拓扑排序,st 数组记录节点是否被访问过
queue<int> q;
bool st[N];// n 表示节点数
int n;// 深度优先搜索函数,计算从节点 i 出发的最大深度
int dfs(int i, int dep) {st[i] = true; // 标记节点 i 已访问int res = dep; // 初始化结果为当前深度// 如果节点 h[i] 未被访问且入度大于 0,则继续搜索if (st[h[i]] == false && ind[h[i]] > 0)res = dfs(h[i], dep + 1);return res; // 返回最大深度
}int main() {cin >> n; // 输入节点数// 读取每个节点指向的下一个节点,并更新入度数组for (int i = 1; i <= n; i++) {int j;cin >> j;h[i] = j;ind[j]++;}// 将所有入度为 0 的节点加入队列for (int i = 1; i <= n; i++) if (ind[i] == 0) q.push(i);// 拓扑排序,减少每个节点指向的下一个节点的入度,如果入度变为 0,则加入队列while (!q.empty()) {int nd = q.front(); q.pop();ind[h[nd]]--;if (ind[h[nd]] == 0) q.push(h[nd]);}int ans = INF; // 初始化答案为无穷大// 对于每个入度大于 0 且未被访问的节点,计算其最大深度,并更新答案for (int i = 1; i <= n; i++) {if (ind[i] > 0 && st[i] == false) ans = min(ans, dfs(i, 1));}cout << ans; // 输出结果return 0;
}

【运行结果】

5
2 4 2 3 1
3
http://www.jsqmd.com/news/394550/

相关文章:

  • 题解:AcWing 1189 刻录光盘
  • 2026年1月玉米粉碎机厂家口碑榜,这些推荐很靠谱,挤压造粒机/翻堆机/双螺杆造粒机/药材粉碎机,粉碎机实力厂家排行 - 品牌推荐师
  • 想高价回收杉德斯玛特卡?一站式平台与高效流程攻略 - 团团收购物卡回收
  • 上帝之眼_数理艺术编程_C++精灵库编程案例
  • 题解:AcWing 1164 加工零件
  • 国内开源大模型竞争加剧,技术迭代与应用落地成焦点
  • 2026隧道/机房/装饰钢板厂家推荐:无锡华龙机房新型装饰材料有限公司,多品类钢板供应 - 品牌推荐官
  • 【Redis】Ubuntu22.04安装redis++ - 实践
  • 题解:AcWing 848 有向图的拓扑序列
  • 2026盘式过滤机厂家推荐:连云港格律诗环保设备,陶瓷/真空过滤机全系供应,技术领先 - 品牌推荐官
  • 题解:AcWing 847 图中点的层次
  • 工业成品多维检测模型 - 指南
  • 2026年铝单板生产厂家实力推荐:金盛铝业有限公司,抗菌/超耐候/仿石材/双曲铝单板全系供应 - 品牌推荐官
  • 武商一卡通如何快速回收?简单安全的平台与流程推荐 - 团团收购物卡回收
  • Sophos Firewall (SFOS) v21.5 MR2 发布 - 下一代防火墙
  • 2026年防腐涂料推荐:鲸鱼防腐涂料,环氧锌黄/煤沥青/云铁/富锌等全系产品供应 - 品牌推荐官
  • 【CTFshow-pwn系列】03_栈溢出【pwn 049】详解:静态编译下的 mprotect 权限修改技巧
  • 2026年车丝机设备厂家推荐:航城科技有限公司,PVC/PE/钢管数控车丝机全系供应 - 品牌推荐官
  • 把坑都踩完了,AI论文写作软件 千笔·专业论文写作工具 VS 云笔AI
  • 2026年光伏系统全流程服务商推荐:浙江兆基电力科技,组件安装/阵列排布/电站施工一站式服务 - 品牌推荐官
  • 2026年流量计生产厂家推荐:江苏雷泰自动化仪表,气体涡轮/超声波/电磁/涡街流量计全品类供应 - 品牌推荐官
  • 2026冲刺用!顶流之选的AI论文软件 —— 千笔ai写作
  • 2026年水肥一体机设备厂家推荐:山东淋垚智慧农业科技,智能/移动/精准施肥设备全系供应 - 品牌推荐官
  • 2026芯片产品公司推荐:深圳市众芯微电子有限公司,a15/CPU/AI/基因芯片等全品类供应 - 品牌推荐官
  • 全网最全 8个降AIGC软件测评:本科生降AI率必备工具推荐
  • 2026年电加热/树脂/衬四氟/外盘管/化工反应釜厂家推荐:无锡鑫泓源石化装备全系供应 - 品牌推荐官
  • 2026年海外移民申请服务推荐:上海加鼎因私出入境,涵盖永居/护照/签证/养老移民全流程 - 品牌推荐官
  • Saliency-Aware Multi-Route Thinking Revisiting Vision-Language Reasoning
  • 2026年镀锌管厂家推荐:天津市茂金金属制品有限公司,热镀锌/焊接/大口径/薄壁等全系镀锌管供应 - 品牌推荐官
  • 信息学奥赛培训教程(配套习题)