导弹打飞机问题

问题描述

某国为了防御敌国的飞机的空中袭击,在较短的时间内研发出一套防空导弹系统,这套导弹系统的工作原理是,它有一套配套的雷达系统,该雷达系统可以检测飞来的飞机的高度,但是由于研制的时间短,这套导弹系统存在一定的BUG,就是当一个导弹打击的飞机高度,是递减的,比如说第一个打击的飞机高度是一万米,那么它打击的第二架飞机的高度,是递减的,比如说9千米,第三架的高度更低,比如说八千,打击飞机的高度一样没关系,但是不能升高了,打击飞机的高度,只能越打越低,然后假设飞机飞来的高度,我们已经知道了,假设飞机已经飞来,都飞在固定高度,高度一动不动的向前飞来。

输入飞机依次飞来的高度。计算要拦截所有飞机最小需要配备多少套这种防空导弹系统。

输入

n架飞机飞来的高度。

输出

要拦截所有飞机所需最小配备的系统数k。

输入样例

6 4 2 8 5 7 9 1 3

输出样例

4

提示

输入:请输入飞机的个数:n
请输入每个飞机的高度

输出:最少需要启动的系统数为k

完整代码:

#include "stdafx.h"
#include <stdio.h>
int main(int argc, char* argv[])
{int i,j,n,k,x;int a[1000];//存储每个飞机的高度int   b[1000];//存储每个系统当前能打到的最低高度,数组下标代表系统编号printf("请输入飞机的个数:\n");scanf("%d",&n);printf("请输入每个飞机的高度:\n");for(i=1;i<=n;i++){scanf("%d",&a[i]);}k=1;//初始化第一个系统
b[1]=a[1];//将第一个飞机的高度作为第一个系统能打到的最低高度放入数组for(i=2;i<=n;i++){//将后续的飞机高度依次取出x=0;for(j=1;j<=k;j++){//将飞机高度与每个系统的最低高度比较if(a[i]<=b[j]){//找到最低高度比飞机高度大的系统if(x==0){x=j;//标记第一个最低高度比该飞机高度大的系统的编号}else if(b[x]>b[j]){//贪心选择,将之后找到的系统与标记的系统比较,如果比之前的小则替换之前的x=j;//记录最合适的系统的编号}}}if(x==0){//没找到k++;//新建一个系统b[k]=a[i]; //将该高度作为新系统的最低高度存入数组}else{//更新最合适的系统的最低高度b[x]=a[i];}}printf("最少需要启动的系统数为:\n ");printf("%d\n",k);return 0;
}

运行结果如下:

导弹打飞机问题(贪心算法)相关推荐

  1. 信息学奥赛第十节 —— 贪心算法(渡河问题POJ 1700 Crossing River + 拦截导弹的系统数量求解)

    复习概念 贪心算法又叫贪婪算法,是指在对问题求解时,总是做出在当前看来是最好的选择.也就是说,贪心算法不从整体最优上加以考虑,它所做出的是在某种意义上的局部最优解. 无后效性:贪心算法不是对所有问题都 ...

  2. 基础算法 —— 贪心算法

    [概述] 贪心算法是从问题的初始状态出发,通过若干次的贪心选择而得到的最优值的一种求解策略,即贪心策略. 简单来说,贪心策略是一种在每次决策时采取当前意义下最优策略的算法,做出的选择至少在某种约束条件 ...

  3. 贪心算法经典例题3:导弹发射问题

    贪心算法经典例题3:导弹发射问题 问题描述: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一 ...

  4. 《贪心算法》— NYOJ 贪心算法题目汇总(一)

    题目6 题目信息 运行结果 本题排行 讨论区 喷水装置(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为 ...

  5. C++算法篇 贪心算法

    实际生活中,经常需要求一些问题的"可行解"和"最优解",这就是所谓的"最优化"问题.一般来说,每个最优化问题都包含一组"限制条件& ...

  6. 算法设计与分析第3章 贪心算法

    第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...

  7. 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...

    问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...

  8. 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

    1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...

  9. 一份贪心算法区间调度问题解法攻略,拿走不谢

    作者 | labuladong 来源 | labuladong(ID:labuladong) [导读]什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多 ...

  10. 漫画:五分钟学会贪心算法!

    假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些"局部最优解"叠起来,就"当作&qu ...

最新文章

  1. NSTimer与Run loop Modes
  2. java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...
  3. 如何避免HBase写入过快引起的各种问题
  4. 撒花!吴恩达《Machine Learning Yearning》中文版新鲜出炉!
  5. 【高并发解决方案】6、数据库水平切分的实现原理解析
  6. BOM之navigator对象和用户代理检测
  7. (24)VHDL实现与或非(行为描述)
  8. aforge 学习-命名空间中文理解
  9. PostgreSQL 删除表格
  10. MATLAB 电子书
  11. win10老是弹出安全登录框
  12. 实战! excel常用函数中lookup的用法
  13. 学计算机的高数学什么,儿子大一,学的计算机科学与技术,感觉高数特别难,都学不会怎么办呢?有什么好办法?...
  14. 免费安装office流程(官方自动批量激活)
  15. 天下数据支招虚拟主机的挑选
  16. 第4套 从零到商业实战篇 斗战神篇
  17. 大疆机甲大师Python开发: 两只老虎
  18. 读研期间学计算机,你不知道的考研事之读研期间学习生活大揭秘(学习篇)
  19. 花园体育馆计算机房音乐教室的英语,四年级英语下册pep知识点复习.ppt
  20. T端带配置文件的魔兽世界BOSS被杀世界公告

热门文章

  1. docker-1 常用命令
  2. 经常有人会问,我的网站部署了好多个网站访问统计系统,比如百度、谷歌、CNZZ、JYC、51.la等等,但各个系统统计的结果总是不相同,而且差距不小,我该以哪个为准呢?
  3. 51la V6蜘蛛统计功能上新
  4. 2014年11月合肥黄山宏村之旅
  5. 摄影常用词:光圈、快门、曝光、底片、ISO、焦距、景深
  6. unity3d通过粒子系统制作火焰效果
  7. python计算字节数_Python len()函数详解:获取字符串长度或字节数
  8. ac1900修改代理服务器,tplink ac1900路由器怎么设置?
  9. 路由器和三层交换机区别
  10. 关闭或更改Windows自带输入法繁体简体切换(Ctrl+Shift+F)的快捷键