赞
踩
提问:【java编程】
【问题描述】
有n个大小相仿的村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di。需要在这些村庄中建立一些通讯基站,使得每个村庄都被覆盖。
已知有三种不同类型的基站:
(A) 建设成本为cost[0]; 只能覆盖建立基站的村庄,即半径为 0。
(B) 建设成本为cost[1]; 能够覆盖以建立基站为中心,半径 3 以内的村庄。
© 建设成本为cost[2]; 能够覆盖以建立基站为中心,半径 15 以内的村庄。
为方便管理,假设基站只能建立在距离第1个村庄距离为非负整数的位置上。问如何选择基站的位置,使得总费用最小?
【输入形式】
第一行为不定长的单调递增的整型数组,代表在距离第一个村庄距离为Di的位置坐落着第i个村庄。
第二行为长度为3的整型数组,对应 cost[0], cost[1], cost[2].
【输出形式】
最小的总费用。
【样例输入】
0 1 2 3 4 5 6 7 8 9 29 33
2 7 15
【样例输出】
17
【样例说明】
在距离15的位置建立一个C基站,覆盖距离 [0, 31], 花费 15.
在距离33的位置建立一个A基站,覆盖距离 33,花费 2.
总费用 15+2=17
【怎么样使用Java解决】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。