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