分析

因为不等号具有传递性。可以对于一个节点连接比他大的数字,最后看他可以到多少个节点就是答案了。

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1e3+100;
int f[N],n,m,ans;vector<int> G[N];
void dfs(int x) {
    f[x] = 1;
    for(auto y:G[x]) {
        if(!f[y]) dfs(y),ans++;
    }
}
int main()
{
    cin >> n >> m;
    for(int i = 1;i <= m;i++) {
        int a,b;cin >> a >> b;
        G[b].push_back(a);
    }
    for(int i = 1;i <= n;i++) {
        memset(f,0,sizeof(f));
        ans = 0;dfs(i);cout << ans << endl;
    }
    return 0;
}