博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1257 最少拦截系统
阅读量:6685 次
发布时间:2019-06-25

本文共 1475 字,大约阅读时间需要 4 分钟。

题目链接:

感觉这题有些扯淡,难道要在敌军导弹发射后发现自己的拦截系统够不到的时候再去搞一套导弹拦截系统?提前准备多套导弹系统的花销是少不了的。只能是在使用的时候,在保证所有导弹被成功拦截的前提下,出动最少的数量导弹拦截系统。

1 #include 
2 #include
3 using namespace std; 4 //导弹拦截系统最大数目,假定为1000 5 #define N 1000 6 int main(){ 7 int n; 8 //存放第i号拦截导弹系统能达到的高度 9 int daodan[N];10 //初始化高度为30005 ,因为敌军导弹高度不超过30000 11 memset(daodan,30005,sizeof(daodan));12 while(cin>>n){13 //height 存储当前敌军导弹所在的高度 14 //num 要出动的导弹拦截系统个数 15 int height=0; 16 int num=0;17 for(int i=0;i
>height;19 //下面开始贪心策略20 //选择离该敌军导弹高度最近的拦截导弹系统21 //mingap 为最小间隔22 //index 存储最适合的导弹拦截系统编号 23 int mingap=30005,index=-1;24 for(int j=1;j<=num;j++){25 //gap 当前导弹系统与当前敌军导弹的高度差 26 int gap=daodan[j]-height;27 //大于0 说明能拦截到,小于零说明拦截不到 28 if(gap>0){29 if(mingap>gap){30 mingap=gap;31 index=j;32 }33 }34 }35 //index==-1 说明当前出动的导弹,都拦截不到该敌军导弹36 //这种情况下就需要出动新一台导弹拦截系统 37 if(index!=-1)38 daodan[index]=height;39 else{40 num++;41 daodan[num]=height;42 }43 }44 cout<
<

 

转载于:https://www.cnblogs.com/vmoor2016/p/6611595.html

你可能感兴趣的文章
玩叠骰子
查看>>
TOJ 4383: n % ( pow( p , 2) ) ===0
查看>>
oracle数据库学习
查看>>
C语言程序,找出一个二维数组的鞍点。
查看>>
微信公众号开发——入门
查看>>
移动端分页
查看>>
清除img和文字间的空隙【vertical-align的用途】
查看>>
MySql的安装、配置(转)
查看>>
C++虚函数及虚函数表解析
查看>>
限制文本控件输入数据格式
查看>>
1058. 选择题(20)
查看>>
回望2018,计划2019
查看>>
Andriod 第五课----图形界面
查看>>
基于sklearn的常用分类任务指标Python实现
查看>>
一些关于Hibernate延迟加载的误区
查看>>
设计模式之缺省适配模式
查看>>
qsort函数辅助函数compare函数的编写
查看>>
项目选题报告答辩总结模板
查看>>
最小费用最大流
查看>>
uva 10972 RevolC FaeLoN
查看>>