线段树优化建图

线段树优化建图

在密集图里,当边的个数比较多时,并且边以区间形式出现如【1 ,2】- > 3。3->【1 2】可以用线段树优化建图,用于减少边的个数。

理解 边的继承关系

如图
线段树优化建图_第1张图片

对于源点 1 , 先检查1的所有出边。根据继承关系,在检查其父节点的出边,以此类推。所以在构建的图时,我们可以多添加一些 , 这些点与点之间的权值为0(保持边原来的性质)

第一种 ,比如构建 1 -> 4 权值为 10 和 【1,2】->3 权值为 20 ,这些边。构建好后如图所示。

线段树优化建图_第2张图片

也就是说,在构建(真正)图之前就构建 出 到其父节点的边 ,这样建图就少了一条边了,而且图的性质没有改变。初始构图的方式 只能是 自底向上的。

第二种,点到区间3->【1 2】,这个时候需要 自顶向下的边了

线段树优化建图_第3张图片

可见线段树优化建图需要两个线段数,一个表示源点 一个表示终点。

你可能感兴趣的:(code,forces)