#include <bits/stdc++.h>
using namespace std;
const int N = 3e5 + 50;
int n, d[N], c[N];
vector <int> e[N];
int main() {
scanf("%d", &n);
for (int i = 1; i < n; i++) {
int u, v;
scanf("%d%d", &u, &v);
d[u]++, d[v]++;
e[u].push_back(v);
e[v].push_back(u);
}
int ans = 0;
for (int i = 1; i <= n; i++) {
int id = 0;
for (auto j : e[i])
c[++id] = d[j] - 1;
sort(c + 1, c + id + 1);
for (int j = 1; j <= id; j++)
if (c[j])
ans = max(ans, (1 + c[j]) * (id - j + 1) + 1);
}
printf("%d\n", n - ans);
return 0;
}
人机 deepseek 说这份代码时间复杂度是 O(n2logn)。为什么我觉得是 O(nlogn)