导弹打飞机问题(贪心算法)
导弹打飞机问题
问题描述
某国为了防御敌国的飞机的空中袭击,在较短的时间内研发出一套防空导弹系统,这套导弹系统的工作原理是,它有一套配套的雷达系统,该雷达系统可以检测飞来的飞机的高度,但是由于研制的时间短,这套导弹系统存在一定的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;
}
运行结果如下:
导弹打飞机问题(贪心算法)相关推荐
- 信息学奥赛第十节 —— 贪心算法(渡河问题POJ 1700 Crossing River + 拦截导弹的系统数量求解)
复习概念 贪心算法又叫贪婪算法,是指在对问题求解时,总是做出在当前看来是最好的选择.也就是说,贪心算法不从整体最优上加以考虑,它所做出的是在某种意义上的局部最优解. 无后效性:贪心算法不是对所有问题都 ...
- 基础算法 —— 贪心算法
[概述] 贪心算法是从问题的初始状态出发,通过若干次的贪心选择而得到的最优值的一种求解策略,即贪心策略. 简单来说,贪心策略是一种在每次决策时采取当前意义下最优策略的算法,做出的选择至少在某种约束条件 ...
- 贪心算法经典例题3:导弹发射问题
贪心算法经典例题3:导弹发射问题 问题描述: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一 ...
- 《贪心算法》— NYOJ 贪心算法题目汇总(一)
题目6 题目信息 运行结果 本题排行 讨论区 喷水装置(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为 ...
- C++算法篇 贪心算法
实际生活中,经常需要求一些问题的"可行解"和"最优解",这就是所谓的"最优化"问题.一般来说,每个最优化问题都包含一组"限制条件& ...
- 算法设计与分析第3章 贪心算法
第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...
- 贪心算法单源点最短路径例题c语言源代码,Dijkstra算法是解单源最短路径问题的一个贪心算法...
问题描述 给定一个带权有向图 G=(V,E) ,其中每条边的权是一个非负实数. 另外,还给定 V 中的一个项点,称为源. 现在我们要计算从源到所有其他各项点的最短路径长度. 这里的长度是指路上各边权之 ...
- 贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码
1. 贪心算法概览 贪心算法是一种算法思想.希望能够满足限制的情况下将期望值最大化.比如:Huffman编码,Dijkstra单源最短路径问题,Kruskal最小生成树 等问题都希望满足限制的情况下用 ...
- 一份贪心算法区间调度问题解法攻略,拿走不谢
作者 | labuladong 来源 | labuladong(ID:labuladong) [导读]什么是贪心算法呢?贪心算法可以认为是动态规划算法的一个特例,相比动态规划,使用贪心算法需要满足更多 ...
- 漫画:五分钟学会贪心算法!
假设一个问题比较复杂,暂时找不到全局最优解,那么我们可以考虑把原问题拆成几个小问题(分而治之思想),分别求每个小问题的最优解,再把这些"局部最优解"叠起来,就"当作&qu ...
最新文章
- NSTimer与Run loop Modes
- java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...
- 如何避免HBase写入过快引起的各种问题
- 撒花!吴恩达《Machine Learning Yearning》中文版新鲜出炉!
- 【高并发解决方案】6、数据库水平切分的实现原理解析
- BOM之navigator对象和用户代理检测
- (24)VHDL实现与或非(行为描述)
- aforge 学习-命名空间中文理解
- PostgreSQL 删除表格
- MATLAB 电子书
- win10老是弹出安全登录框
- 实战! excel常用函数中lookup的用法
- 学计算机的高数学什么,儿子大一,学的计算机科学与技术,感觉高数特别难,都学不会怎么办呢?有什么好办法?...
- 免费安装office流程(官方自动批量激活)
- 天下数据支招虚拟主机的挑选
- 第4套 从零到商业实战篇 斗战神篇
- 大疆机甲大师Python开发: 两只老虎
- 读研期间学计算机,你不知道的考研事之读研期间学习生活大揭秘(学习篇)
- 花园体育馆计算机房音乐教室的英语,四年级英语下册pep知识点复习.ppt
- T端带配置文件的魔兽世界BOSS被杀世界公告
热门文章
- docker-1 常用命令
- 经常有人会问,我的网站部署了好多个网站访问统计系统,比如百度、谷歌、CNZZ、JYC、51.la等等,但各个系统统计的结果总是不相同,而且差距不小,我该以哪个为准呢?
- 51la V6蜘蛛统计功能上新
- 2014年11月合肥黄山宏村之旅
- 摄影常用词:光圈、快门、曝光、底片、ISO、焦距、景深
- unity3d通过粒子系统制作火焰效果
- python计算字节数_Python len()函数详解:获取字符串长度或字节数
- ac1900修改代理服务器,tplink ac1900路由器怎么设置?
- 路由器和三层交换机区别
- 关闭或更改Windows自带输入法繁体简体切换(Ctrl+Shift+F)的快捷键