|
沙发
楼主 |
发表于 2021-10-14 14:53:58
|
只看该作者
(zjoi2012)
考虑一种排列的生成方式,每次加入一个数然后和前面的数交换或插入一个位置,再计算权值。
因为是绝对值,所以考虑从小往大加,但是发现在交换或插入后与前面序列的状态有关,不好转移,而n又较小,考虑添加状态方便转移。
在加入一个元素后我们决策其相邻的两个元素与其的大小关系,此时就加上它对答案的影响,这样一来,我们相当于将当前的序列割成了几段,后面的数只能插入段与段的间隙里,又考虑到两端间隙的特殊性,令fi,j,k,s表示考虑完前面i个数、有j个间隔、两端的间隔有k个、波动值为s的方案数,转移参(zi)见(xing)标(nao)称(bu)。
时间复杂度O(N4)。
空间复杂度O(N3),用滚动数组。
|
|