C++
思路:
$1、k条赋值语句,循环k次,每次输入x,y$
$2、判断一下, 如果 y 在前面的赋值语句中没有做为 x 出现过,sum ++$
$3、标记一下左值(表示其被初始化过了)$
$最后输出 sum 即可$
$code:$
时间复杂度:$O(k)$
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int n, k;
bool p[N];
int main() {
cin >> n >> k;
p[0] = true; // 常量0已经被初始化过
int sum = 0;
while (k --) {
int x, y;
cin >> x >> y;
if (!p[y]) sum ++;
p[x] = true;
}
cout << sum;
return 0;
}
stO L-China Orz