A short problem
问题描述
给定一序列:a1,a2,a3,...,an,求其长度不小于m的最大连续子序列。
解题报告
显然这是最大连续子序列的变形。我们只需求解“紧跟”长度为m的连续子序列前的“最大连续子序列问题”。定义f[i]表示在原序列前i个元素中并且以ai为尾的最大连续子序列值,那么最大连续子序列问题的状态转移方程为:f[i]=max{f[i-1]+a[i],a[i]}。结合此题定义:sum(i,j)=ai+a(i+1)+...+a(j-1)+aj,则此题的状态转移方程就是:opt[i]=sum(i-m+1,i)+f[i-m](i>m)。最终结果就是:cnt=max(opt[i])。