hdu1257

一开始 就理解错了题目的意思  一直错 贪心问题 拦截系统又不只是使用一次哇!!

#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
    int dp[400],x,n,i,j,m;
    while(cin>>n)
    {
     dp[1]=0;//用来记录每个最短子序列的最小元素
  m=0;//最短序列的个数
     for(i=1;i<=n;i++)
     {
           cin>>x;
           for(j=1;j<=m;j++)
           {
              if(x<=dp[j])//更新最小元素
              {
               dp[j]=x;
               break;
              }
           }
           if(j>m) dp[++m]=x;  //如果x比任何一个最小的都打 插入一个新的序列
        }
        cout<<m<<endl;
    }
 return 0;
}    

posted @ 2016-07-12 16:21  猪突猛进!!!  阅读(159)  评论(0编辑  收藏  举报