代码思路和第一篇题解不是一样,怎么全WA
查看原帖
代码思路和第一篇题解不是一样,怎么全WA
398504
lzm15096067472楼主2021/11/13 21:12
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int maxn=1e5+10;
int h[maxn],e[maxn],ne[maxn],idx;
int n,m,A[maxn],vis[maxn];
void add(int a,int b)
{
    e[idx]=b;
    ne[idx]=h[a];
    h[a]=idx++;
}
void dfs(int u)
{
    if(!A[u]) A[u]=u;
    for(int i=h[u];i!=-1;i=ne[i])
    {
        int j=e[i];
        if(!A[j])
        A[j]=A[u];
            dfs(j);
    }
}
int main()
{
    memset(h,-1,sizeof(h));
   cin>>n>>m;
   while(m--)
   {
       int a,b;
       cin>>a>>b;
       add(b,a);
   }
    for(int i=n;i>=1;i--)
    {
            dfs(i);
    }
   for(int i=1;i<=n;i++)
    cout<<A[i]<<' ';
    return 0;
}
2021/11/13 21:12
加载中...