我发现这个题目中可以算只有一条边的点的数量-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;
	}
}