A334. 最大上升子序列和
编程题
普及-
知识点
题目描述
一个数的序列 $b_i$,当 $b_1<b_2<...<b_S$ 的时候,我们称这个序列是上升的。对于给定的一个序列$(a_1,a_2,...,a_N)$,我们可以得到一些上升的子序列$(ai_1,ai_2,...,ai_K)$,这里$1$ $\le$ $i$ <sub>$1$</sub><$i$<sub>2</sub><...<$i$<sub>k</sub>$\le$ $N$。比如,对于序列($1,7,3,5,9,4,8$),有它的一些上升子序列,如 $(1,7),(3,4,8)$ 等等。这些子序列中和最大为$18$,为子序列$(1,3,5,9)$的和。
你的任务,就是对于给定的序列,求出最大上升子序列和。注意,最长的上升子序列的和不一定是最大的,比如序列 $(100,1,2,3)$ 的最大上升子序列和为 $100$ ,而最长上升子序列为 $(1,2,3)$ 。
你的任务,就是对于给定的序列,求出最大上升子序列和。注意,最长的上升子序列的和不一定是最大的,比如序列 $(100,1,2,3)$ 的最大上升子序列和为 $100$ ,而最长上升子序列为 $(1,2,3)$ 。
输入格式
输入的第一行是序列的长度 $N(1 \le N \le 1000)$。第二行给出序列中的 $N$ 个整数,这些整数的取值范围都在 $0$ 到 $10000$(可能重复)。
输出格式
最大上升子序列和。
输入输出样例
输入 #1
7 1 7 3 5 9 4 8
输出 #1
18