MLE #2—#10 求助!!
查看原帖
MLE #2—#10 求助!!
1052511
XinFengIneverleft楼主2023/10/18 12:26

rt,求调

#include <bits/stdc++.h>
using namespace std;

int n;
int len[100001];
vector<int> g[100001];

int dfs(int end, int u)
{
	if (end == u)
		return 1;
	if (len[u])
		return len[u];

	int sum = 0;
	for (int i = 0; i < g[u].size(); i++)
		sum = dfs(end, g[u][i]) + 1;
	len[end] = sum;
	return sum;
}

int main()
{
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		int next;
		cin >> next;
		g[i].push_back(next);
	}
	for (int i = 1; i <= n; i++)
		for (int j = 0; j < g[i].size(); j++)
			cout << dfs(i, g[i][j]) << "\n";
	return 0;
}
2023/10/18 12:26
加载中...