1 条题解

  • 1
    @ 2024-3-28 21:18:20

    世界上最好的题解😄

    #include<bits/stdc++.h>
    using namespace std;
    int n,m;
    vector<int> g[100005];
    void input(){
    	cin>>n>>m;
    	int x,y;
    	for(int i=0;i<m;++i){
    		cin>>x>>y;
    		g[y].push_back(x); 
    	}
    }
    int res[100005];
    void dfs(int k){
    	for(unsigned int i=0;i<g[k].size();++i){
    		int &t=g[k][i];
    		if(!res[t]){
    			res[t]=res[k];
    			dfs(t);
    		}
    	}
    }
    int main(){
    	input();
    	for(int i=n;i>=1;--i){
    		if(!res[i]){
    			res[i]=i;
    			dfs(i);
    		}
    	}
    	for(int i=1;i<=n;++i)cout<<res[i]<<" ";
    	return 0;
    }
    

    看完别忘了点赞哟👍

    • 1

    信息

    ID
    2849
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    19
    已通过
    10
    上传者