[SDOI2010]地精部落

Description

Luogu2467
BZOJ1925

Solution

神仙DP。

(f[i][j])(1 - i)开头为(j)的波动序列且(j)为波峰的个数,我们考虑第二个数字,如果不是(j-1),那么交换(j)(j-1)还是一个波动序列,且一一对应;如果是(j-1),那么剩下的部分是一个值域为([1,j-1]cup[j+1,i])的波动序列,离散化一下就是([1,i-1])的波动序列,然后我们再把离散化之后的序列的([j, i-1])那部分都加上(1),再在最前面放上一个(j),又构成了一个([1,i-1])开头为(j-1)的且(j-1)为波谷的序列和这个序列的一一对应。然后把每个数字都取个反就成了波峰了,所以就有转移:(f[i][j] = f[i][j-1]+f[i-1][i-j+1])

原文地址:https://www.cnblogs.com/wyxwyx/p/sdoi2010djbl.html