编译失败(本地可以)
查看原帖
编译失败(本地可以)
600143
9gehetao楼主2023/10/6 21:20
#include<bits/stdc++.h>
using namespace std; 
int edge[1000001],next[1000001];
int head[1000001],cnt;		
void Init(){	
    for(int i=0;i<1000001;i++)
        head[i]=next[i]=-1;
    cnt=0;
}
void add(int u,int v){
    edge[cnt]=v;
    next[cnt]=head[u];
    head[u]=cnt++;
}
int n,m;		
int ans[1000001];			
void dfs(int n,int a){		
    if(ans[n]) return;		
    ans[n]=a;		
    for(int i=head[n];i!=-1;i=next[i])	
        dfs(edge[i],a);
}
int main(){
    Init();
    cin>>n>>m;
    for(int i=1;i<=m;i++){
        int u,v;
        cin>>u>>v;
        add(v,u);	
    }
    for(int i=n;i;i--)	
        if(!ans[i]) dfs(i,i);
    for(int i=1;i<=n;i++)
        cout<<ans[i]<<" ";
    return 0;
}
2023/10/6 21:20
加载中...