洛谷$P1864\ [NOI2009]$二叉查找树 区间$dp$

正解:区间$dp$

解题报告:

传送门$QwQ$

首先根据二叉查找树的定义可知,数据确定了,这棵树的中序遍历就已经改变了,唯一能改变的就是通过改变权值从而改变结点的深度.

发现这里权值的值没有意义,所以显然离散化掉,然后设$f_{i,j,w}$表示对数据排序并确定了$[i,j]$这一区间的树的形态,所有点的权值都$\geq w$的最小代价.

考虑枚举$k\in [i,j]$为这段子树的根,转移就两种.

第一种是$val_k\geq w$,就直接$f_{i,j,w}=f_{i,k-1,w_k}+f_{k+1,j,w_k}+sum_{i,j}$

第二种是$val_k<w$,就把$val_k$改成$w$(因为显然在子树权值都确定的情况下当前节点权值越小越好,这样父亲节点需要改的可能性就小些$QwQ$,显然不会更劣$QwQ$),就有$f_{i,j,w}=f_{i,k-1,w}+f_{k+1,j,w}+K+sum_{i,j}$

嗷好像忘记先说$sum$是啥了$QwQ$,$sum$就$[l,r]$的访问频率昂$QwQ$.就把深度$\times$访问频率简简单单改成这样的表示方式了.还是挺好理解的不解释了$QwQ$

$overrrrr$

上一篇:day14 Python集合关系运算交,差,并集


下一篇:Post Office