luogu#P16369. [OOI 2026] Decoration
[OOI 2026] Decoration
题目描述
在准备面向中学生的闭门编程奥林匹克竞赛的过程中,组织者决定装饰礼堂。为此,他们在墙上沿着一条直线钉上了 个木桩。所有木桩均位于不同的位置。在它们之间,拉起了 条绳子,其中第 条绳子拉在距离墙的起点分别为 和 的两个木桩之间()。已知每个木桩上恰好系有一条绳子。
这些绳子可以进行一种称为 重系 的操作。在一次 重系 操作中,你可以选择两条绳子 和 ,将它们从木桩上解下,然后用这四个释放出来的木桩恰好各一次地挂上两条新绳子。也就是说,从这四个释放的木桩中,形成两个新的配对,并在它们之间拉上新绳子。
如果线段 与 至少有一个公共点,则称拉在木桩 和 之间的绳子相交。如果存在一个包含 条绳子的集合,其中的绳子两两相交,则称一个绳子配置的 美观度 至少为 。注意,如果一个配置的美观度为 ,那么它的美观度也至少为 。
奥林匹克竞赛的组织者有 个查询,希望通过若干次 重系 操作来得到具有特定美观度的配置。在第 个查询中,他们希望达到至少为 的美观度。对于每个查询,组织者希望知道所需的最少 重系 操作次数。这些查询之间相互独立,这意味着查询之间的 重系 操作不会被保留。
输入格式
第一行包含两个整数 和 ()—— 绳子的数量以及查询的数量。
接下来的 行描述绳子。第 行包含两个整数 和 ()—— 第 条绳子所连接的木桩的编号。保证每个木桩恰好出现一次。
再接下来一行包含 个整数 , , , ()—— 组织者查询中所期望的美观度大小。保证所有 互不相同。
输出格式
对于每个查询,输出一个非负整数 —— 为得到查询中所要求美观度的绳子配置,所需执行的最少 重系 操作次数。
保证对于每个查询,都可以通过执行若干次 重系 来达到所要求美观度的配置。
6 6
25 30
15 29
7 12
8 14
4 5
16 23
1 2 3 4 5 6
0 0 1 1 2 3
提示
样例解释
在第一个例子中,绳子的初始配置如下:
:::align{center}
:::
由于绳子 3 和 4 已经相交,要达到美观度至少为 和至少为 不需要任何操作。
要达到美观度 和 ,你可以对绳子 2 和 5 执行一次 重系 操作,得到绳子 和 。
:::align{center}
:::
要达到美观度 ,你可以再对绳子 3 和 6 进行一次操作,得到 和 。
:::align{center}
:::
要使所有 6 条绳子都相交,你可以对绳子 1 和 5、2 和 3、4 和 6 进行操作,得到如下配置:
:::align{center}
:::
计分
本题的测试数据分为 6 组。每组仅在通过该组内全部测试以及此前某些组的全部测试后,才能获得分数。注意,某些组不要求通过题面中的样例。
| 组别 | 分数 | 附加限制 | < | 必过组别 | 备注 | |
|---|---|---|---|---|---|---|
| -- | -- | -- | 题面中的样例。 | |||
| -- | ||||||
| -- | -- | 绳子两两不相交。 | ||||
| -- | ||||||
| -- | -- | |||||
翻译由 DeepSeek V4 Pro 完成