解题思路:
这道题根据题意不难理解,其实就是求最长上升子列和最长下降子列。
定义f[i]为以第i个人为结尾的最长递增子列长度,则有状态转移方程
f[i]=max(f[i],f[i-k])
从前往后递推
定义x[i]为以第i个人为开始的最长递减子列长度,则有状态转移方程
x[i]=max(x[i],x[i+k])
从后往前递推
则最优解为
ans=max(x[i]+f[i])-1
代码:
#
解题思路:
这道题根据题意不难理解,其实就是求最长上升子列和最长下降子列。
定义f[i]为以第i个人为结尾的最长递增子列长度,则有状态转移方程
f[i]=max(f[i],f[i-k])
从前往后递推
定义x[i]为以第i个人为开始的最长递减子列长度,则有状态转移方程
x[i]=max(x[i],x[i+k])
从后往前递推
则最优解为
ans=max(x[i]+f[i])-1
代码:
#