rt,虽然已AC,但求原因,感谢各位大佬
#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N = 1e5 + 5;
vector<int> g[N];
int n, m, ans = 0;
int in[N], f[N];
void dfs(int u, int num){
if(f[u] != 0){
ans += f[u];
return ;
}
bool tmp = 1;
for(auto i : g[u]){
dfs(i, num + 1);
f[u] += f[i];
tmp = 0;
}
if(tmp && num > 0)
ans++;
}
signed main(){
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
// freopen("in.txt", "r", stdin);
cin >> n >> m;
for(int i = 1, x, y; i <= m; i++){
cin >> x >> y;
g[x].push_back(y);
in[y]++;
}
for(int i = 1; i <= n; i++){
if(in[i] == 0)
dfs(i, 0);
}
cout << ans;
fflush(stdout);
return 0;
}