第四周1002题解
2015-08-23 22:32
609 查看
Problem Description
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.
怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.
Input
输入若干组数据.每组数据包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于30000的正整数,用空格分隔)
Output
对应每组数据输出拦截所有导弹最少要配备多少套这种导弹拦截系统.
Sample Input
8 389 207 155 300 299 170 158 65
Sample Output
2
思路分析:
贪心算法解决即可,使用一枚导弹顺序拦截,直到不能拦截时,启用下一枚导弹,并记录终止导弹的拦截值,接下来重复上次操作,不过查看是否拦截需要遍历所有终止导弹的拦截值。
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹.
怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助计算一下最少需要多少套拦截系统.
Input
输入若干组数据.每组数据包括:导弹总个数(正整数),导弹依此飞来的高度(雷达给出的高度数据是不大于30000的正整数,用空格分隔)
Output
对应每组数据输出拦截所有导弹最少要配备多少套这种导弹拦截系统.
Sample Input
8 389 207 155 300 299 170 158 65
Sample Output
2
思路分析:
贪心算法解决即可,使用一枚导弹顺序拦截,直到不能拦截时,启用下一枚导弹,并记录终止导弹的拦截值,接下来重复上次操作,不过查看是否拦截需要遍历所有终止导弹的拦截值。
import java.util.Scanner; public class Main1002 { public static int height[]; // public static int getRes(int i,int m){ // if(i==0&&m>height[0]) { // d[i] = 1; // return d[i]; // } // else if(i==0){ // d[i] = 0; // return d[i]; // } // // if(m<height[i])d[i]+= getRes(i-1,m);//不能拦截当前导弹 // if(m>=height[i]) // d[i]+= Math.max(getRes(i-1,m),getRes(i-1,height[i])+1); // return d[i]; // } public static int greed(int[] arr) {//贪心算法 int k = 1; int b[] = new int[arr.length]; b[0] = 30000; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < k; j++) { if (arr[i] <= b[j]) {//如果高度小于当前储存的所有做小高度,则拦截 b[j] = arr[i]; break; } else if(j==k-1){//遍历到最后一枚导弹亦无法拦截,导弹系统增加 k++; b[j+1] = arr[i]; break; } } } return k; } public static void main(String args[]) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int N = sc.nextInt(); height = new int ; for (int i = 0; i < N; i++) { height[i] = sc.nextInt(); } System.out.println(greed(height)); } } }
相关文章推荐
- 学习JS(6)
- C++实现线程池类
- SAS能自己编写函数么?
- 翻转子串(Java)
- TCP/IP——内外网IP+子网掩码作用+PING(网络总结)
- 第一百四十一/二/三天 how can I 坚持
- Tomcat的Server.xml虚拟主机和虚拟目录的配置
- python的深拷贝和浅拷贝
- html事例
- DB2 执行Sql 语句中时的with ur
- linux帮助相关命令man、info、help
- 循环链表的特性以及判断单链表是否有环(九)
- Android Studio上使用github
- 最大权闭合图 hdu 3879 Base Station 有模板!
- 2015第34周日
- 继承
- iOS中陀螺仪的使用
- 24.Swap Nodes in Pairs
- 这个姑娘成了全球最有影响力的人之一(特别会做家务!)
- WPF中log4net的用法