莫名TLE,复杂度正确
查看原帖
莫名TLE,复杂度正确
737158
yszkddzyh楼主2023/11/24 19:12
#include <bits/stdc++.h>
using namespace std;

const int N = 1e5 + 5;
vector <int> G[N];
int t, n, siz[N], dep[N];

void dfs(int u, int f){
	dep[u] = dep[f] + 1;
	siz[u] = 1;
	for(int i = 0; i < G[u].size(); i++){
		int v = G[u][i];
		if(v == f) continue;
		dfs(v, u), siz[u] += siz[v];
	}
	return;
}

int main(){
	
	ios :: sync_with_stdio(false);
	cin >> t;
	while(t--){
		cin >> n;
		for(int i = 1; i <= n; i++) G[i].clear();
		memset(siz, 0, sizeof(siz));
		memset(dep, 0, sizeof(dep));
		for(int i = 1, u, v; i < n; i++){
			cin >> u >> v;
			G[u].push_back(v);
			G[v].push_back(u);
		}
		dfs(1, 0);
		for(int i = 1; i <= n; i++)
			cout << dep[i] << ' ' << n - siz[i] + 1 << '\n';
	}
	
	return 0;
}
2023/11/24 19:12
加载中...