首页 > 其他分享 >P4253 [SCOI2015] 小凸玩密室

P4253 [SCOI2015] 小凸玩密室

时间:2023-10-23 18:13:57浏览次数:31  
标签:子树 rs times fa ls 小凸 SCOI2015 P4253 rightarrow

P4253

bzoj #4446

  • 非常好的一道树形 dp 题
  • 起初我看错题了 QwQ ,以为第一个选的必须为根
  • 首先我们发现假设我们选的第一个灯泡为 \(u\) ,他的行走过程是:\(u \rightarrow u\) 子树 \(\rightarrow fa_u \rightarrow u\) 兄弟子树 \(\rightarrow fa_{fa_u} \rightarrow \dots\)
  • 因此我们考虑设 \(g_{u,i}\) 表示从 \(u\) 点开始,便利完 \(u\) 子树后走到第 \(i\) 层需要的最小花费。
    • 当 \(u\) 没有儿子时,显然 \(g_{u,i} = (dis_{fa_{u,i}} - dis_u) \times a_{fa_{u,i}}\) ,其中 \(dis_{u}\) 表示 \(u \rightarrow 1\) 的路径和,\(fa_{u,i}\) 表示 \(u\) 一直向上跳直到到达第 \(i\) 层的节点编号
    • 当 \(u\) 有一个儿子时,容易得到 \(g_{u,i} = g_{ls, i} + w_{ls} \times a_{ls}\)
    • 当 \(u\) 有两个儿子时就比较难办了,因为我们不知道从一个子树跳跃到另一个子树的代价。为此,我们可以记 \(f_{u,i}\) 表示从 \(u\) 访问其子树并走到第 \(j\) 层的兄弟节点的最小花费,则可以得到 \(g_{u,i} = \min(a_{ls} \times w_{ls} + f_{ls,dep_{rs}} + g_{rs,j}, a_{rs} \times w_{rs} + f_{rs,dep{ls}} + g_{ls,j})\)
  • 然后考虑 \(f_{u,i}\) 的转移,同理
  • 最终复杂度 \(O(n \log n)\)

标签:子树,rs,times,fa,ls,小凸,SCOI2015,P4253,rightarrow
From: https://www.cnblogs.com/fox-konata/p/17783115.html

相关文章

  • P4155 [SCOI2015] 国旗计划
    按套路破环成链,要注意右端点小于左端点的区间跨越了\(N\to1\)。假设钦定了士兵\(i\),接下来肯定贪心地选择左端点小于等于当前右端点的右端点最大的下一个区间。因为区间不存在包含关系,按右端点从小到大排序后形式化地讲就是找到最大的\(j\)使得\(C_j\leqD_i\)。直接做是......
  • P4253 [SCOI2015]小凸玩密室
    首先分析题意:给定一棵完全二叉树及其点权与边权现在从某个节点出发,之后遍历整棵二叉树,要求遍历的节点必须联通遍历另一棵子树前先遍历完当前子树访问x之后马上访问......
  • [SCOI2015]小凸玩矩阵
    [SCOI2015]小凸玩矩阵链接:https://www.luogu.com.cn/problem/P4251题解:可以发现去掉了$k$的限制之后,原问题是一个二分图的最大独立集的问题,加上了$k$的限制就可以......