posts - 100,  comments - 15,  trackbacks - 0
//导弹,求最长下降子序列长度,注意输出,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 阅读(66) 评论(0)  编辑 收藏 引用 所属分类: POJ

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理