优化建图相关技术

参考tzc_wk的博客

前缀优化建图

适用形式:

  1. \(x\)\([1,i]\)连边。

  2. \(x\)\([i,n]\)连边。

  3. \([1,x]\)\([y,n]\)连边。

考虑建\(n\)个虚点\(s_i\)\(n\)个虚点\(p_i\)\(s_i\)代表\([1,i]\)的前缀,\(p_i\)代表\([i,n]\)的后缀。

我们连边\(i\to s_i\)\(s_i\to s_{i+1}\)\(p_i\to i\)\(p_i\to p_{i+1}\)

对于操作\(1\)\(s_i\to x\)

对于操作\(2\)\(x\to p_i\)

对于操作\(3\)\(s_x\to p_y\)

对于树上对一端为根的链连边,直接建内向树,然后连就好了。

线段树优化建图

适用形式:

  1. \(x\)\([l,r]\)连边。

  2. \([l,r]\)\(x\)连边。

  3. \([l_1,r_1]\)\([l_2,r_2]\)连边。

建两棵线段树。一棵父亲向儿子连边,叶子向对应节点连边。另一棵儿子向父亲连边,对应节点向叶子节点连边。不妨分别称为内向树和外向树。

对于操作\(1\),从\(x\)向外向树上的对应\(\log n\)个点连边。

对于操作\(2\),从内向树上的对应\(\log n\)个点向\(x\)连边。

对于操作\(3\),新建一个虚点\(p\),从\([l_1,r_1]\)\(p\)连边,\(p\)\([l_2,r_2]\)连边,这样与原问题是等价的。

CDQ分治优化建图

主席树优化建图

树套树优化建图

posted @ 2024-12-23 11:22  RandomShuffle  阅读(20)  评论(0)    收藏  举报