题目名称 1581. [POJ2152]消防站
输入输出 poj_2152.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarcstdio 于2014-04-09加入
开放分组 全部用户
提交状态
分类标签
POJ 动态规划 树形DP
分享题解
通过:19, 提交:37, 通过率:51.35%
GravatarTA 100 0.090 s 4.23 MiB C++
Gravatarfye 100 0.111 s 9.02 MiB C++
Gravatardigital-T 100 0.119 s 4.17 MiB C++
Gravatar雪狼 100 0.127 s 4.23 MiB C++
Gravatarvampire 100 0.145 s 8.12 MiB C++
Gravatar落尘 100 0.152 s 8.12 MiB C++
Gravatar浮生随想 100 0.155 s 7.38 MiB C++
Gravatarlcomyn 100 0.161 s 8.96 MiB C++
Gravatarcstdio 100 0.161 s 9.10 MiB C++
Gravatar诺亚 100 0.167 s 8.20 MiB C++
关于 消防站 的近10条评论(全部评论)
感谢《陈启峰 一张一弛解题之道》的神讲解
GravatarONCE AGAIN
2016-08-16 10:25 2楼
开O2输出正无穷。。不开O2会T。。。作死的自己。。
GravatarSkyo
2015-10-14 14:07 1楼

1581. [POJ2152]消防站

★★★   输入文件:poj_2152.in   输出文件:poj_2152.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

Z国有N座城市,编号为1到N。城市间有高速公路连接,并且每两个城市之间都有且仅有一条路径。最近Z国经常发生火灾,因此政府决定在一些城市修建一些消防站。在第K座城市修建消防站花费W(K)。不同城市的W值可能不同。如果城市K没有消防站,它和最近的有消防站的城市的距离不能超过D(K)。D对不同的城市也可能是不同的。为了节约预算,±希望你计算修建消防站的最小花费。

【输入格式】

输入数据的第一行有一个整数N,代表城市数量。(0<=N<=1000)

第二行有N个整数,第I个整数是W(I)(0<=W(i)<=10000)。

第三行有N个空格隔开的整数。第I个整数是D(I)(0<=D(I)<=10000)。

接下来的N-1行每行有三个整数u,v,w(1<=u,v<=N,0<L<=1000),代表城市u和城市v之间有一条长度为L的高速公路。

【输出格式】

输出一行一个整数,即修建消防站的最小花费。

【样例输入】

样例输入1:


5

1 1 1 1 1

1 1 1 1 1

1 2 1

2 3 1

3 4 1

4 5 1

样例输入2:


5

1 1 1 1 1

2 1 1 1 2

1 2 1

2 3 1

3 4 1

4 5 1

样例输入3:


5

1 1 3 1 1

2 1 1 1 2

1 2 1

2 3 1

3 4 1

4 5 1

样例输入4:


4

2 1 1 1

3 4 3 2

1 2 3

1 3 3

1 4 2

样例输入5:


4

4 1 1 1

3 4 3 2

1 2 3

1 3 3

1 4 2


【样例输出】

样例输出1:

2

样例输出2:

1

样例输出3:

2

样例输出4:

2

样例输出5:

3

【提示】

本题的输入输出格式和POJ上略有不同。

【来源】

POJ 2152 Fire

POJ Monthly,Lou Tiancheng