#tower. 2026提高组模拟赛18-T4 信号塔
2026提高组模拟赛18-T4 信号塔
时间限制:1000ms 内存限制:512MB
| 项目 | 内容 |
|---|---|
| 输入文件名 | tower.in |
| 输出文件名 | tower.out |
| 可执行文件名 | tower |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
山区分布着 个村庄,编号为 。村庄之间有 条道路相连,任意两个村庄之间都恰有一条由道路组成的通路(即道路构成一棵树)。第 条道路连接村庄 与 ,长度为 。各条道路的长度不全相同。
通信工程队计划在这些村庄中修建信号塔,为村民提供移动通信服务。在村庄 修建一座信号塔的费用为 。各村地形不同,信号要求也不同:村庄 要求它与最近一座塔沿道路的距离不超过 。这里,两座村庄之间的"沿道路的距离",指连接它们的唯一通路上各条道路长度之和。
工程队需要在若干村庄修建信号塔,使得每座村庄的信号要求都被满足。请计算满足要求的最小总费用。
输入格式
从文件 tower.in 中读入数据。
- 第一行一个整数 ;
- 接下来 行,每行三个整数 ,表示一条连接村庄 与 、长度为 的道路;
- 接下来一行 个整数 ,依次表示村庄 的建塔费用;
- 最后一行 个整数 ,依次表示村庄 的信号要求。
输出格式
输出到文件 tower.out 中。
输出一行一个整数,表示最小总费用。
样例
样例 1 输入
4
1 2 1
2 3 1
2 4 1
5 100 10 2
1 2 2 1
样例 1 输出
7
样例 1 解释
村庄 的信号要求严格(),村庄 的要求宽松()。在村庄 与村庄 各建一座塔:村庄 的塔覆盖村庄 (距离 )、(距离 )、(距离 );村庄 的塔覆盖村庄 (距离 )、(距离 )、(距离 )。两塔合计费用 。村庄 居中,一座塔就能覆盖全部四个村庄,但村庄 的建塔费用为 ,高于两座便宜塔的组合。
样例 2 输入
4
1 2 1
2 3 10
3 4 1
100 1 100 5
1 1 1 3
样例 2 输出
6
样例 2 解释
村庄 的信号要求严格(),村庄 的要求宽松()。在村庄 与村庄 各建一座塔:村庄 的塔覆盖村庄 (距离 )、(距离 );村庄 的塔覆盖村庄 (距离 )、(距离 )。总费用 。村庄 与村庄 隔着两条道路,但连接村庄 与村庄 的道路长 :若只看道路条数,村庄 的塔到村庄 只隔 条路、到村庄 隔 条路,似乎都在覆盖范围内;实际沿道路距离分别为 ,超过村庄 的严格要求与村庄 的宽松要求,村庄 的塔覆盖不到它们。
样例 3 输入
5
1 2 1
2 3 1
3 4 1
4 5 1
100 1 100 1 100
1 20 1 20 1
样例 3 输出
2
样例 3 解释
村庄 的信号要求宽松(),远处的塔就能覆盖;村庄 的要求严格(),必须在近处建塔。在村庄 与村庄 各建一座塔:村庄 的塔覆盖村庄 (距离 )、(距离 )、(距离 )、(距离 ,不超过 );村庄 的塔覆盖村庄 (距离 )、(距离 )、(距离 )。总费用 。若因村庄 要求宽松就只在村庄 建塔,村庄 距村庄 为 ,超过村庄 的严格要求 ,覆盖不到,还需在村庄 补塔。
数据范围
对于所有测试数据,保证:
- ,;
- ,;
- 任意两个村庄之间恰有一条由道路组成的通路;
- 村庄 可以在自身建塔(此时该塔与村庄 沿道路的距离为 ,满足 ),故总存在可行方案。
各测试点的约束如下:
| 测试点 | 特殊性质 | |
|---|---|---|
| 无 | ||
| A | ||
| 无 | ||
- 特殊性质 A:每个村庄的度数不超过 (道路构成一条链)。
- ID
- 706
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者
相关
在下列比赛中: