线段树优化建图

小 trick 不足挂齿。

考虑 \([l_1,r_1]\to[l_2,r_2]\) 这种连边操作。

一个 naive 的想法是直接把这两个点在两棵线段树上连起来完事了,但是问题是事实上那些该连在一起的点并没有连在一起,怎么办呢?

给第一棵线段树所有边都变成向上,第二棵所有边都变成向下,这样就能只连那一条区间边就把该连在一起的都连在一起了(从第一颗线段树上的节点连向第二棵即可)。注意有些题目的叶子节点对应要连双向边(主要是为了方便操作,可以规避)。

posted @ 2024-06-29 10:28  Shunpower  阅读(9)  评论(0编辑  收藏  举报