求助大佬
查看原帖
求助大佬
1618482
zxAAAAA楼主2025/8/3 18:59

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


}
2025/8/3 18:59
加载中...