#P17834. [CSP-S 2026] 研发基地 / hub(官方数据)
[CSP-S 2026] 研发基地 / hub(官方数据)
P17834 [CSP-S 2026] 研发基地 / hub(官方数据)
- 题号:P17834
- 难度:NOI/NOI+/CTSC(8)
- 标签:动态规划 DP、二分、O2优化、树形 DP、树的直径、树链剖分、虚树、2026、CSP-S 提高级
- 时间限制:4000 ms
- 内存限制:1024 MB
- 样例数:1
- 提交 / 通过:13404 / 1887
- 抓取时间:2026-11-11T12:06:58.155Z
- 正文来源:problem.content(zh-CN)
题目背景
考虑评测机性能差异,时限临时增加 1 秒。
题目描述
小 W 曾是一名科研爱好者。在 C 国工作时,他担任测试员,日复一日地测试各种新型传送门,在城市之间来回穿梭。久而久之,他厌倦了这样的生活,于是辞去工作,来到没有任何传送门的 D 国,希望在这里重新找回对研发的热爱。
在开始研发之前,小 W 需要建造研发基地。D 国共有 座城市,编号为 到 。这 座城市由 条道路连接,其中第 条道路连接第 座和第 座城市。若将每座城市视作一个点,将每条道路视作连接两个点的边,则这 座城市和 条道路构成一棵树 。
小 W 的经费有限,他计划选择恰好 座城市,在每座选中的城市里各建造一个研发基地。为了便于这些基地之间的协作,小 W 希望选中的城市在 中对应的点形成不超过两个连通块。形式化地,定义建造方案 是合理的,当且仅当 ,且 在 中形成的连通块数量不超过 。
对于合理的建造方案 ,定义第 座城市的通勤距离为 ,其中 表示从第 座城市到第 座城市所需经过的道路的最少条数。特别地,若 ,则 。定义该建造方案的通勤半径为所有城市通勤距离的最大值,即 。
你需要帮助小 W 求出,所有合理的建造方案的通勤半径的最小值。
输入格式
从文件 hub.in 中读入数据。
本题包含多组测试数据。
输入的第一行包含两个非负整数 ,分别表示测试点编号与测试数据组数。特别地,若 ,则该测试点为样例。
接下来依次输入 组测试数据。对于每组测试数据:
- 第一行包含两个正整数 ,分别表示城市数量和小 W 计划建造的研发基地数量。
- 第 行包含两个正整数 ,分别表示第 条道路连接的两座城市的编号。
输出格式
输出到文件 hub.out 中。
对于每组测试数据,输出一行一个非负整数,表示所有合理的建造方案的通勤半径的最小值。
附件
- hub.zip
样例
样例 1 输入
0 2
5 2
1 2
2 3
3 4
4 5
10 3
1 2
1 3
2 4
2 5
3 6
3 7
3 8
7 9
9 10
样例 1 输出
1
2
提示
样例 1 解释
该样例共包含两组测试数据。
对于第一组测试数据,共有 种合理的建造方案。按通勤半径分类如下:
- 通勤半径为 的方案:,,;
- 通勤半径为 的方案:,,,,;
- 通勤半径为 的方案:,。
因此,所有合理的建造方案的通勤半径的最小值为 。
对于第二组测试数据,一种合理的建造方案为 ,其中第 座城市单独构成一个连通块,第 座和第 座城市构成一个连通块。该建造方案的通勤半径为 。
样例 2
见题目目录下的 hub/2.in 与 hub/2.ans。
该样例满足测试点 的约束条件。
样例 3
见题目目录下的 hub/3.in 与 hub/3.ans。
该样例满足测试点 的约束条件。
样例 4
见题目目录下的 hub/4.in 与 hub/4.ans。
该样例满足测试点 的约束条件。
样例 5
见题目目录下的 hub/5.in 与 hub/5.ans。
该样例满足测试点 的约束条件。
数据范围
设 为单个测试点内所有测试数据的 的和。对于所有测试数据,均有:
- ,;
- ,,;
- 对于所有 ,均有 ,且所有 构成一棵树。
::cute-table{tuack}
| 测试点编号 | 特殊性质 | |||
|---|---|---|---|---|
| 无 | ||||
| ^ | ||||
| ^ | ||||
| ^ | A | |||
| 无 | ||||
| ^ | ^ | |||
特殊性质 A:存在正整数 满足 ,且对于所有 ,均有 且 ;对于所有 ,均有 且 。
由 fetch_luogu_statements.mjs v1.0.0 自动抓取生成;原始数据见 json/P17834.json。