36pts求大佬帮指出一下程序错误,感谢!
查看原帖
36pts求大佬帮指出一下程序错误,感谢!
1789463
GCYHZY楼主2025/7/21 11:43

36pts求大佬帮指出一下程序错误,感谢!

#include <bits/stdc++.h>
using namespace std;
int n,m,u,v,vis[1005];
struct edge
{
    int t,nxt;
}road[4005];
int cnt,head[1005];
void add(int u,int v)
{
    cnt++;
    road[cnt].t=v;
    road[cnt].nxt=head[u];
    head[u]=cnt;
}
void dfs(int s)
{
    if(vis[s])
        return;
    vis[s]=s;
    for(int i=head[s];i;i=road[i].nxt)
    {
        
        dfs(road[i].t);//cout<<road[i].t<<" ";
        vis[s]=max(vis[s],vis[road[i].t]);
        //cout<<s<<" "<<vis[s]<<" "<<vis[road[i].t]<<"\n";
    }
        
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;++i)
    {
        cin>>u>>v;
        add(u,v);
    }
    for(int i=1;i<=n;++i)
        dfs(i);
    for(int i=1;i<=n;++i)
        cout<<vis[i]<<" ";
    return 0;
}
2025/7/21 11:43
加载中...