求助大佬,哪里出问题了
查看原帖
求助大佬,哪里出问题了
1066381
Eternal_rainbow楼主2025/7/30 20:47
#include <bits/stdc++.h>
using namespace std;
int n,m,f[100005]; 
vector<int> e[100005]; 
void dfs(int x, int d) 
{
    if (f[x] >= d) 
	{
        return;
    }
    f[x] = d;
    for (int i = 0;i < e[x].size();i++) 
	{
        dfs(e[x][i],d);
    }
}
int main() 
{
    cin >> n >> m;
    for (int i = 1;i <= m;i++) 
	{
        int u, v;
        cin >> u >> v;
        e[v].push_back(u);
    }
    for (int i = 1;i <= n;i++) 
	{
        f[i] = i;
    }
    for (int i = n;i >= 1;i--) 
	{
        dfs(i,i);
    }
    for (int i = 1;i <= n;i++) 
	{
        cout << f[i] << " ";
    }
    return 0;
}

2025/7/30 20:47
加载中...