#P12659. [KOI 2023 Round 1] 加油站

[KOI 2023 Round 1] 加油站

题目背景

试题来源:https://koi.or.kr/archives/。中文翻译做了少量本土化修改。

按照署名—非商业性使用—相同方式共享 4.0 协议国际版进行授权。

题目描述

KOI 国家由 NN 个村庄组成。每个村庄从 1 到 NN 编号。国家中共有 N1N - 1 条道路,每条道路连接两个不同的村庄,编号从 1 到 N1N - 1。第 ii 条道路连接的是第 xix_i 个村庄与第 yiy_i 个村庄。

KOI 国家中的任意两个村庄之间,恰好存在一条路径将它们连接起来。

从第 xx 个村庄到第 yy 个村庄的路径可以表示为一个村庄序列:xx - z1z_1 - z2z_2 - ⋯ - ztz_t - yy,该路径满足以下两个条件:

  • 路径上相邻两个村庄之间,即 xxz1z_1z1z_1z2z_2,⋯,ztz_tyy 之间都存在道路直接连接。
  • 路径中不得有重复村庄。也就是说,xxz1z_1,⋯,ztz_tyy 均为互不相同的村庄。

路径的“长度”定义为该路径上所经过的道路数,即 t+1t + 1

现在,计划在若干个村庄中设置加油站。根据 KOI 国家法律,加油站必须满足以下条件:

  • 对于任意长度为 kk 的路径,路径中必须至少有一个村庄设有加油站。

在满足上述条件的前提下,找出设置加油站所需的最小数量。

输入格式

第一行包含两个整数 NNkk,以空格分隔,表示村庄的数量与路径长度限制。

接下来 N1N - 1 行,每行包含两个整数 xix_iyiy_i,表示道路直接连接的两个村庄编号。

输出格式

输出一行,表示满足条件所需的最少加油站数量。

6 2
1 2
1 3
2 4
2 5
4 6
1
7 2
1 2
1 3
2 4
2 5
4 6
6 7
2

提示

样例 1 说明

只需在第 22 个村庄设置加油站即可满足所有长度为 22 的路径。

样例 2 说明

仅在第 22 个村庄设置加油站不能满足所有长度为 22 的路径(例如路径 4674-6-7 不包含加油站)。若再在第 66 个村庄也设置加油站,则所有长度为 22 的路径都包含至少一个加油站。因此最小加油站数量为 22

限制条件

  • 所有输入均为整数。
  • 2N2000002 \leq N \leq 200\,000
  • 1kN11 \leq k \leq N - 1
  • 1xi,yiN1 \leq x_i, y_i \leq N
  • xiyix_i \ne y_i
  • 任意两个村庄之间,存在唯一一条路径相连。
  • 至少存在一条长度为 kk 的路径。

子问题

  1. (9 分)对于每条道路 ii1iN11 \leq i \leq N - 1),连接的是第 ii 个村庄和第 i+1i + 1 个村庄。
  2. (10 分)k=1k = 1
  3. (11 分)对于每条道路 ii1iN11 \leq i \leq N - 1),连接的是第 i+1i + 1 个村庄和 i+12\lfloor \frac{i + 1}{2} \rfloor 个村庄。这里 x\lfloor x \rfloor 表示不大于 xx 的最大整数。
  4. (12 分)N15N \leq 15
  5. (15 分)N300N \leq 300
  6. (17 分)N3000N \leq 3\,000
  7. (26 分)无额外限制

翻译由 ChatGPT-4o 完成