首页 > 其他 > 详细

【考试】10.2

时间:2019-10-05 00:16:29      阅读:91      评论:0      收藏:0      [点我收藏+]

1>保卫王国

 

一棵树,有点权,

树上一条边上要求至少一个点被选,

现在有好多个询问,要求一个点被选,或者没有被选

求问每个询问的最小代价

技术分享图片

 

(1)很明显的树形dp,

简单的暴力,对每次询问,求一次dp,用dfs

复杂度O(nm)

前11个点,44分

 

(2)优化dp

因为m优化不得,离线也没什么用,

所以,估计最终的复杂度应该是O(mlogn)

再画一棵树,发现每次影响的其实只有x到y这一段中的dp,

(当然相邻节点有一点...影响)

我们把要更新的部分分成三部分:

设两个点为u,v,t=LCA(u,v)

三部分为:

1.从u到t

2.从v到t

3.从t到root

设f[0/1][0/1][i][u ]表示u不选/选,u往上跳2^i步的祖先不选/选时,从u开始dp到那个祖先的答案。

(倍增维护)

 

【考试】10.2

原文:https://www.cnblogs.com/xwww666666/p/11623712.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!