防御导弹问题(动态规划)
分析:从后先找到每个数的最大的数目,往前求时利用后面已经求的数目。
#include<bits/stdc++.h>
using namespace std;
int a[20],b[20];
int k=1;
int main()
{
while(scanf("%d",&a[k])!=EOF)
{
k++;
}
for(int i=1;i<k;i++)
{
b[i]=1;
for(int j=1;j<i;j++)
{
if(a[j]>=a[i])
b[i]=max(b[i],b[j]+1);
}
}
sort(b,b+k);
printf("%d\n",b[k-1]);
return 0;
}