输入:每组序列个数 序列
如
5
1 3 3 3 7
6
4 1 4 4 15 4
输出:
9
16
分析: 一开始因为每个数有可能分到第一组,也可能分到第二组。所以一开始想的是深度搜索。但是
显然时间会超出。后来想动态规划,一直没有想明白。终于在第二天早上想出来了。当时想到
最长上升子序列,对于每一个元素有可能出现在序列中也能没有。比如,站队要想从左到右个子
从高到低排列,那么必然要踢掉一些人。每个人都有两种可能,留下或踢掉。当时采取的策略是,
自顶向下的话,是找前面比当前的身高矮的人,然后 temp = dp[j] + 1; 求一个最大的temp。所以