posts - 100,  comments - 15,  trackbacks - 0
<2009年5月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

常用链接

留言簿(1)

随笔分类(84)

随笔档案(100)

向高手学习

搜索

  •  

积分与排名

  • 积分 - 27967
  • 排名 - 676

最新评论

阅读排行榜

评论排行榜

//导弹,求最长下降子序列长度,注意输出,1PE,o(╯□╰)o
#include<iostream>
using namespace std;
#define M 5000

int height[M+1];
int maxlen[M+1];

int dp(int n)
{
    
int i,j,tmp;
    maxlen[
0]=1;
    
for(i=1;i<n;i++)
    
{
        tmp
=0;
        
for(j=0;j<i;j++)
            
if(height[i]<height[j] && maxlen[j]>tmp)
                tmp
=maxlen[j];
        maxlen[i]
=tmp+1;
    }

    tmp
=1;
    
for(i=0;i<n;i++)
        
if(maxlen[i]>tmp)
            tmp
=maxlen[i];
    
return tmp;
}


int main()
{
    
int k,n,t;
    k
=1;
    n
=0;
    
while(scanf("%d",&t)==1 )
    
{
        
if(t==-1 )
        
{
            
if(n==0return 0;
            
else {
                printf(
"Test #%d:\n  maximum possible interceptions: %d\n\n",k,dp(n));
                memset(height,
0,sizeof(height));
                memset(maxlen,
0,sizeof(maxlen));
                n
=0;
                k
++;
            }

        }
 else height[n++]=t;
    }

    
return 0;
}
posted on 2009-05-23 18:35 wyiu 阅读(72) 评论(0)  编辑 收藏 引用 所属分类: POJ