题目大意:给你导弹数量 以及导弹高度,导弹系统有限制,每次发射都必须比前一次发射要低,就意思就是递减的
题目思路:用一个数组来储存每个系统可以拦截的高度,
然后进行导弹的循环,要是 拦截不了就生成一个新的 导弹系统
让人开心的是 这个题目是我自己独立写出来 独立调试的
#include<iostream>
using namespace std;
#define N 1000
int a[N];//导弹的高度
int b[N];//导弹拦截系统的最高高度
int main()
{
int n;
int t;//导弹拦截系统的个数
while(cin>>n)
{
t=1;
for(int i=0;i<n;i++)
cin>>a[i];
b[1]=a[0];
int flag=0;
for(int i=1;i<n;i++)
{ int w=t;//这里从新定义一个w 是为了防止
flag=0;
for(int j=1;j<=w;j++)
{
if(a[i]<b[j])
{
b[j]=a[i];
flag=1;
break;
}
}
if(flag==0)//如果说找不到一个导弹系统可以拦截的话 就得再有一个新的导弹系统
{
t++;
b[t]=a[i];
}
}
cout<<t<<endl;
}
return 0;
}