我发现这个题目中可以算只有一条边的点的数量-1得到答案,但第4 5 6个点会超时,求解答
代码如下
#include <iostream>
#include <cstring>
using namespace std;
int sum, e[1001000], ne[1001000], h[1001000], idx = 1;
void add(int x, int y) {
e[idx] = y, ne[idx] = h[x], h[x] = idx++;
}
int main() {
int t;
cin >> t;
for (int i = 1; i <= t; i++) {
sum=0;
memset(e, 0, sizeof e);
memset(h, -1, sizeof h);
memset(ne, 0, sizeof ne);
int n;
cin >> n;
for (int j = 1; j <= n-1; j++) {
int u, v;
cin >> u >> v;
add(u, v);
add(v, u);
}
for (int j = 1; j <= n; j++) {
if (ne[h[j]] == -1)
sum++;
}
cout << sum - 1<<endl;
}
}