小技巧—边权转点权

很多算法,比如树链剖分,是在点权上进行计算和统计的。

详解树链剖分

但是有些题会比较狗,只给你边权。

这时就要想办法把边权转为点权。

以一棵树为例。边权转点权一般是把边权转为深度较深的节点(也就是儿子节点)的点权。

这么做很好理解,因为对于一棵树来讲,一个点有很多个儿子(出边),所以没办法把这些出边的边权都集中在一个点上,但是一个点只有一条入边。所以我们选择这种策略。

需要注意的是,在边转点之后,如树链剖分之类的统计会出现变化。

显而易见,边转点之后,每个点代表这个点本身和它的入边这条路径,所以在我们统计一条线段路径的时候(从一个点开始,到一个点结尾),就不能同时包括其两个端点(理由已经给出)。否则就会错。

幸甚至哉,歌以咏志。