首页 > 代码库 > NYOJ 79 导弹拦截

NYOJ 79 导弹拦截

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=79

 

思路:最长上升子序列的变形,反过来用就可以了,即最长下降子序列。l[i]表示以第i个数为最小值的最长下降子序列长度。

 

 

代码:

  

#include <iostream>#include<cstring> using namespace std;int l[21];int a[21];int main(){    int num;    cin>>num;    int n;    int res;    while(num--)    {            res = 0;            cin>>n;            for(int i=1;i<=n;i++)            {                cin>>a[i];            }                                        for(int i=1;i<=n;i++)            {                l[i] = 0;                for(int j=i-1;j>=1;j--)                {                    if(a[i]<a[j]&&l[i]<l[j])                    {                        l[i] = l[j];                    }                            }                l[i]++;                res = max(res,l[i]);            }            cout<<res<<endl;    }    return 0;} 

 

NYOJ 79 导弹拦截