#P14269. [ROI 2015 Day2] 警报系统
[ROI 2015 Day2] 警报系统
题目背景
译自 ROI 2015 Day2 T4. Сигнализация
题目描述
一个地下掩体由 个房间组成,这些房间通过 条走廊相连。每条走廊连接两间不同的房间,并具有一定的长度。掩体的结构保证了从任意一个房间 都可以到达另一个房间 。注意,存在且仅存在一条路径,使得在该路径中没有任何走廊被重复经过。由这些走廊长度的总和定义为房间 与房间 之间的距离,记作 。
每个房间都装有一套声响警报系统,由警报器(喇叭)和声波感应器组成。当房间 的警报器被启动时,它会激活所有与其距离不超过 的房间的声波感应器,其中 表示该警报器的有效传播半径。换句话说,如果房间 的警报器被启动,那么所有满足 的房间 的警报器也会被自动启动。这些被自动启动的警报器反过来又可能触发更多的警报器,以此类推。
在紧急情况下,需要人工启动一部分警报器。这些被人工启动的警报器会自动触发其他警报器,最终应当使得所有房间的警报器都被启动。安全规范要求必须选择一个最小的人工启动警报器集合,以确保最终所有房间的警报器都会被启动。
请编写一个程序,计算满足安全规范所需的最少人工启动警报器数量。
输入格式
第一行包含一个整数 —— 房间的数量。
第二行包含 个整数 ,第 个整数表示位于第 间房间的警报器的最大传播距离()。
接下来的 行描述了掩体内的走廊。第 行包含三个整数 , , ,其中 和 是被走廊连接的两个不同房间编号, 表示该走廊的长度(;)。
输出格式
输出一个整数 —— 表示必须人工启动的警报器的最小数量。
10
1 2 2 2 6 3 4 5 4 3
1 2 5
2 3 1
2 4 5
4 5 2
4 6 4
4 7 3
1 8 1
8 9 5
8 10 4
3
提示
样例解释
在样例测试中:
- 房间 4 的警报器会激活房间 5 的警报器,房间 5 的警报器又会激活房间 6 和房间 7 的警报器;
- 房间 2 的警报器会激活房间 3 的警报器;
- 房间 8 的警报器会激活房间 1、9 和 10 的警报器。
:::align{center}
:::
数据范围
| 子任务编号 | 分值 | 的范围 |
|---|---|---|
| 1 | 16 | |
| 2 | 23 | |
| 3 | 17 | |
| 4 | 24 | |
| 5 | 20 |