【内向基环树】codeforces 2044 G1. Medium Demon Problem (easy version)
1.【内向基环树】LeetCode 2127. 参加会议的最多员工数
2.【内向基环树】codeforces 2044 G1. Medium Demon Problem (easy version)
3.【内向基环树】LeetCode 2360. 图中的最长环4.【Floyd】AtCoder ABC375 F. Road Blocked前言
基环树,又名环套树,是具有
题目
https://codeforces.com/contest/2044/problem/G1
题解
分析题意,易知该题符合内向基环树森林的特征。
由于每个蜘蛛手上至多只会保留一个毛绒玩具,因此对于任意一颗内向基环树的简单环而言,都是永远相等的。因此,我们只需要关注内向基环树的外链最长长度即可。对于内向基环树的外链长度,可以使用拓扑排序的思路进行解决,由于环上节点入度必不为
因为题目要求要
参考代码
#include<bits/stdc++.h> using namespace std; constexpr int N = 2e5 + 7; int T, n; int a[N]; int in[N]; void solve() { cin >> n; memset(in + 1, 0, sizeof(int) * n); for (int i = 1; i <= n; ++ i) { cin >> a[i]; in[a[i]] ++; } vector<int> v; for (int i = 1; i <= n; ++ i) if (!in[i]) v.emplace_back(i); int ans = 2, front = 0, rear = v.size(); while (front < rear) { ++ ans; while (front < rear) { if (-- in[a[v[front]]] == 0) v.emplace_back(a[v[front]]); ++ front; } rear = v.size(); } cout << ans << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> T; while (T --) { solve(); } return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 【.NET】调用本地 Deepseek 模型