动态规划-试题(5)-路灯
2017-09-02 09:32
260 查看
路灯
来源: 网易2016校招来源:http://t.cn/RyQBups
问题描述:
一条长l的笔直的街道上有n个路灯,若这条街的起点为0,终点为l,第i个路灯坐标为ai ,每盏灯可以覆盖到的最远距离为d,为了照明需求,所有灯的灯光必须覆盖整条街,但是为了省电,要是这个d最小,请找到这个最小的d。
分析
这个题目有两个要求:一、灯光必须覆盖整条街;
二、要省电,d要小。
所以要考虑两种情况,第一种情况是计算两盏路灯之间的距离,这些距离中的最大值的一半就是d。第二种情况是找到距离街道两端最近的路灯,路灯与两端的距离的最大值就是d。比较这两种情况中的d,较大值就是所求。
代码
public class Ludeng { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) handle(scanner); } public static void handle(Scanner scanner) { double d = 0;//结果 /*收集数据*/ int n = scanner.nextInt();//n盏灯 int l = scanner.nextInt();//街长为l Integer[] pos = new Integer ;//灯的坐标 for (int i = 0; i < n; i++) { a7fc pos[i] = scanner.nextInt(); } /*处理*/ /*第一个d*/ double d1 = 0; Collections.sort(Arrays.asList(pos)); for (int i = 1; i < n; i++) { int temp = pos[i] - pos[i-1]; d1 = d1<temp? temp: d1; } d1 = d1/2; /*第二个d*/ int temp2 = l-pos[n-1]; int d2 = pos[0]<temp2? temp2: pos[0]; /*比较两者得到结果*/ d = d1<d2? d2: d1; System.out.println(d); } }
相关文章推荐
- 动态规划-试题(1)-扔玻璃珠
- 动态规划-试题(2)-背包问题
- 动态规划-试题(6)-最大差值
- 动态规划和递归试题整理
- 动态规划试题:合唱队形
- 动态规划 试题收录
- 动态规划4-编辑距离问题
- HDU 4050 wolf5x(动态规划-概率DP)
- 动态规划经典案例
- NOIP前 基础动态规划模板
- C++处理一个动态规划的问题
- 动态规划实例:"Alphacode" From Sicily 1001
- 100道动态规划——16 UVA 1627 Team them up! 二分图,背包,不过关键还是学会转化
- 动态规划和递归、循环、迭代
- 矩形嵌套 ————DAG(有向无环图)上的动态规划
- 动态规划(5) 2168 Jokes With Turtles
- 基于连通性状态压缩的动态规划--【插头DP】模板超级详细解释
- hdu 2018 母牛的故事 动态规划--简单
- 动态规划----SPOJ 1182. Sorted bit squence (数位统计+二分)
- 动态规划的一些小结