社区讨论

求问时间复杂度

学术版参与者 9已保存回复 19

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
19 条
当前快照
1 份
快照标识符
@mbuv2py5
此快照首次捕获于
2025/06/13 21:46
9 个月前
此快照最后确认于
2025/11/04 10:21
4 个月前
查看原帖
CPP
#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(n^2 \log n)。为什么我觉得是 O(nlogn)O(n \log n)

回复

19 条回复,欢迎继续交流。

正在加载回复...