DP1257最少拦截系统

#include"stdio.h"
int n,dis[100000],max,dp[100000];
void  DP()
{
    for(int i=1;i<=n;++i)
    {
        dp[i]=1;
        for(int j=1;j<i;++j)
          if(dis[i]>dis[j]&&dp[j]+1>dp[i])
             dp[i]=dp[j]+1;
          if(dp[i]>dp[max])
            max=i;       
    }       
}
int main()
{
     int t;
     while(scanf("%d",&n)!=EOF)
     {
         max=0;
         dis[0]=dp[0]=0;
         for(int i=1;i<=n;++i)
           scanf("%d",&dis[i]);
         DP();
          printf("%d\n",dp[max]);              
     } 
     return 0;
}

posted @ 2011-08-02 22:08  bcy  阅读(113)  评论(0编辑  收藏  举报