20分反向建边MLE求调
查看原帖
20分反向建边MLE求调
848948
Wcf8833887700楼主2023/7/29 20:39
#include<bits/stdc++.h>
using namespace std;
int n,m,tn[100005];
vector <int> q[100005];
void dfs(int s){
	for(auto t:q[s]){
		tn[t]=max(tn[t],tn[s]);
		dfs(t);
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v;
		cin>>u>>v;
		q[v].push_back(u);
	}
	for(int i=1;i<=n;i++){
		tn[i]=i;
	}
	for(int i=n;i>=1;i--){
		dfs(i,i);
	}
	for(int i=1;i<=n;i++){
		cout<<tn[i]<<' ';
	}
	return 0;
}
2023/7/29 20:39
加载中...