HDU 1087(最长上升子序列)

来源:互联网 发布:跳转域名 编辑:程序博客网 时间:2024/05/16 06:33

题意:求最长上升子序列的和。

 

#include <cstdio>#include <cstring>int T[1009];__int64 sum[1009];#define MAX(a, b) ((a) > (b) ? (a) : (b))int main(){    int n, i, j;    while (scanf("%d", &n) != EOF && n)    {        for (i = 0; i < n; ++i) scanf("%d", T+i), sum[i] = T[i];        for (i = 1; i < n; ++i)            for (j = 0; j < i; ++j)                if (T[j] < T[i] && sum[i] < sum[j] + T[i]) sum[i] = sum[j] + T[i];        __int64 _max = 0;        for (i = 0; i < n; ++i)            _max = MAX(_max, sum[i]);        printf("%I64d\n", _max);    }    return 0;}


 

0 0
原创粉丝点击