nyoj-79-拦截导弹

1.第一个元素存入数组

 

 

2.第二个进入时与第一个比较,若小于第一个元素,存入数组的尾部。若大于第一个元素,则覆盖第一个元素(核心步骤:提高最长单调递减序列的上界,使更多的元素进入此序列)。

 

 

 

 

3.第三个元素,与第一个元素比较,若小于,与第二个元素比较,若小于,存入数组的尾部。若大于第一个或者第二个元素,则覆盖该元素。

 

 

4.重复以上步骤即可(递推思想)


#include

int main()
{
int s;
scanf("%d",&s);
while(s--)
{
int n,i,j,k=1,t,a[21];
scanf("%d",&n);
scanf("%d",&t);
a[0]=t;
for(i=1;i {
scanf("%d",&t);
for(j=0;j if(a[j]<=t)
{
a[j]=t;
break;
}
if(j==k)
a[k++]=t;
}
printf("%d\n",k);
}
return 0;
}









你可能感兴趣的:(nyoj-79-拦截导弹)