Final Dash
日常更新
审题
然后,奇怪的思路就来了:
既然我们可以一次把它移到正确的位置上,那么这个数字就可以理解为直接被移走了。
所以……
做法
题目被我们转化成了:删除几个数字,使得数列单调递增,所求的是移走数字的最小和。 使得删除的和最小,就意味着留下的和最大。
那么问题就变成了:保留几个单调递增的数字,使得和最大。
那就简单很多了。
程序代码
最长不降子序列变形
F[i]=max(a[i], f[j]+a[i])
其中,j<i`
a[j]<=a[i]`
f[i]
表示以a[i]
结尾的的不降序列的和的最大值;
初始值:f[i]=a[i]
结果:max(f[i])
即最优的序列以任意数结尾都有可能。
int T,n,a[N],f[M]; |