测试数据都对,就是通不过,呜呜
查看原帖
测试数据都对,就是通不过,呜呜
819204
string_char楼主2023/12/6 22:46
#include<bits/stdc++.h>
#include<vector>
using namespace std;
int a[100005];
vector<int> v[100005];
int dfs(int ui)
{
	if(a[ui] != 0) return a[ui];
	a[ui] = ui;
	if(v[ui].size() == 0) return a[ui];
	for(int i=0;i<v[ui].size();i++)
	{
		if(a[v[ui][i]] != 0) a[ui] = max(a[ui],a[v[ui][i]]);
		else a[ui] = max(a[ui],dfs(v[ui][i]));
	}
	return a[ui];
}
int main(){
	int n,m,ui,vi; cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>ui>>vi;
		v[ui].push_back(vi);
	} 
	for(int i=1;i<=n;i++)
	{
		dfs(i);
		cout<<a[i]<<" ";
	}
	return 0; 
}
2023/12/6 22:46
加载中...