贪心4--拦截导弹
贪心4--拦截导弹
一、心得
二、题目和分析
某国为了防御敌国的导弹袭击,开发出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭,并观测到导弹依次飞来的高度,请计算这套系统最多能拦截多少导弹。拦截来袭导弹时,必须按来袭导弹袭击的时间顺序,不允许先拦截后面的导弹,再拦截前面的导弹。
求系统数。
三、代码和结果
1 #include <iostream> 2 using namespace std; 3 int main(){ 4 int n; 5 int a[100]; 6 cin>>n; 7 for(int i=1;i<=n;i++){ 8 cin>>a[i]; 9 } 10 11 //在一堆人中找符合条件的 12 13 int sys=0; 14 int high[100]={0}; 15 16 for(int i=1;i<=n;i++){ 17 //去找系统 18 int p=0; 19 //在系统中找最小 20 //找最小这个需要仔细斟酌一下 21 //在一队数中找最小的怎么做 22 for(int j=1;j<=sys;j++){ 23 if(high[j]>=a[i]){ 24 //在一队数中找最小的怎么做 25 if(p==0){ 26 p=j; 27 high[j]=a[i]; 28 } 29 else{ 30 if(high[p]<high[j]){ 31 p=j; 32 high[j]=a[i]; 33 } 34 } 35 } 36 } 37 if(p==0){ 38 sys++; 39 high[sys]=a[i]; 40 } 41 } 42 cout<<sys<<endl; 43 44 return 0; 45 }
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672