分析
因为不等号具有传递性。可以对于一个节点连接比他大的数字,最后看他可以到多少个节点就是答案了。
代码
#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; }