HDU 1087 Super Jumping! Jumping! Jumping!

http://acm.hdu.edu.cn/showproblem.php?pid=1087

求最长上升子序列问题

View Code
#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int cmp(const void*a,const void*b)

{

    return *(int*)b-*(int*)a;

}

int main()

{

    int n,i,j;

    int a[1100],dp[1100];

    while(scanf("%d",&n),n)

    {

        for(i=0;i<n;i++)

            scanf("%d",a+i);

        for(i=0;i<1100;i++)

            dp[i]=a[i];

        for(i=0;i<n;i++)

            for(j=0;j<i;j++)

                if(a[i]>a[j]&&dp[i]<dp[j]+a[i])

                    dp[i]=dp[j]+a[i];

        qsort(dp,n,4,cmp);

        printf("%d\n",dp[0]);

    }

    return 0; 

}

 

你可能感兴趣的:(super)