68分求助
查看原帖
68分求助
1235962
chen_1111楼主2024/11/3 19:29
#include<bits/stdc++.h>
using namespace std;
int a[1005][1005],n,m,u,v,visit[1005],mx;
bool check(int i)
{
    for(int j=1;j<=n;j++)
        if(a[i][j]&&!visit[j])
            return false;
    return true;
}
void dfs(int i)
{
    if(check(i))
        return;
    for(int j=1;j<=n;j++)
        if(!visit[j]&&a[i][j]==1)
        {
            if(j>mx)
                mx=j;
            visit[j]=1;
            dfs(j);
        }
}
int main()
{
    cin>>n>>m;
    while(m--)
    {
        cin>>u>>v;
        a[u][v]++;
    }
    for(int i=1;i<=n;i++)
    {
        mx=i;
        memset(visit,0,sizeof(visit));
        dfs(i);
        cout<<mx<<" ";
    }
}
2024/11/3 19:29
加载中...