萌新求助 WA on #6
查看原帖
萌新求助 WA on #6
560516
喵仔牛奶楼主2023/5/5 21:38

https://www.luogu.com.cn/record/109655966

刚开始 WA on #6,后来改成题解的写法也是 WA on #6

#include <bits/stdc++.h>
using namespace std;
namespace Milkcat {
	typedef long long LL;
	const int N = 1e6 + 5;
	int n, k, u, v, top, p, fa[N], depth[N], qwq[N], dis[N];
	vector<int> G[N];
	void dfs1(int u, int fat) {
		fa[u] = fat;
		if (dis[u] > dis[p]) p = u;
		for (int v : G[u])
			if (v != fat) dis[v] = dis[u] + 1, dfs1(v, u);
	}
	int dfs2(int u, int fat, int dep) {
		fa[u] = fat, qwq[u] = depth[u] = dep;
		for (int v : G[u])
			if (v != fa[u]) qwq[u] = max(qwq[u], dfs2(v, u, dep + 1));
		return qwq[u];
	}
	int main() {
		cin >> n >> k;
		for (int i = 1; i < n; i ++)
			cin >> u >> v, G[u].push_back(v), G[v].push_back(u);
		dfs1(1, 0), top = p, dis[p] = 0, dis[top] = 1, dfs1(top, 0);
		for (int i = 1; i <= (dis[p] + 1) / 2; i ++)
			p = fa[p];
		dfs2(p, 0, 0), qwq[n + 1] = -1;
		for (int i = 1; i <= n; i ++)
			qwq[i] -= depth[i];
		sort(qwq + 1, qwq + n + 2, greater<int>());
		cout << qwq[k + 1] + 1 << '\n';
		return 0;
	}
}
int main() {
	return Milkcat::main();
}

2023/5/5 21:38
加载中...