题目传送门
题目大意
对于一颗完全二叉树,定义其节点 u u u 的
- 左儿子 l s = u × 2 ls=u\times2 ls=u×2,右儿子 r s = u × 2 + 1 rs=u\times2+1 rs=u×2+1
- 父亲为 ⌊ u 2 ⌋ \lfloor \frac u2\rfloor ⌊2u⌋
- 置换操作:将 u u u 的值换为 { u , \{u, { u, l s ls ls(如果有), r s rs rs(如果有) } \} } 的中位数,代价为 0 \text0 0
- 修改操作:将 u u u 的值修改为任意数,代价为 c u c_u cu
- “近似中位数”:从最后一个节点 n n n 开始向前执行,若此节点非叶子节点,则进行置换操作,最后节点 1 1 1 (根)的值即为近似中位数
现在给你这颗树的初始权值,和修改每个点的代价。
再给出一个询问列表 m 1 , m 2 , ⋯ , m q m_1,m_2,\cdots,m_q m1,m2,⋯,mq,对于每个询问,回答使树的近似中位数为 m i m_i mi 所需要的最小代价。
部分分
首先我们来看 n , q ≤ 1000 n,q\leq1000 n,q≤1000 的部分。
定义函数
p ( m i , a u ) = { 0 m i < a u 1 m i = a u 2 m i > a u 并维护每个询问都刷新的数组 f u = p ( m i , a u ) ,此处 m i 为全局变量 p(m_i,a_u)=\begin{cases}0&m_i<a_u\\1&m_i=a_u\\2&m_i>a_u\end{cases} \\并维护每个询问都刷新的数组\ f_u=p(m_i,a_u),此处\ m_i 为全局变量 p(mi,au)=⎩
⎨
⎧012mi<aumi=aumi

最低0.47元/天 解锁文章
912

被折叠的 条评论
为什么被折叠?



