码迷,mamicode.com
首页 > 其他好文 > 详细

线段树分治

时间:2020-03-01 10:53:42      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:线段树   线段   端点   ref   判断   最小   维护   二分   序列   

原理

改修放区间,答案放叶子的一种分治方法

应用

二分图

考虑一个图是二分图当且仅当没有奇环,用扩展域并查集维护

类似线段树的方法,遍历到一个区间就下放完全包含这个区间的边,然后判断是不是二分图

回溯的时候删去影响,所以需要资瓷删除的并查集

CF918E

\(bitset\)维护每个位置的答案,最后合并到一起

[CTSC2016]时空旅行

过于毒瘤

考虑把每个点影响子树化为\(dfs\)序列上问题,然后线段树分治

对于题目,我们要求\(min\{(X-x_i)^2+c_i\}\),\(X\)每次给定

拆开\(=X^2-2Xx_i+x_i^2+c_i=k\)

变形一下\(2Xx_i+k=X^2+x_i^2+c_i\)

我们希望\(k\)最小,发现这是一个线性规划问题,对于每个决策点形如\((x_i,X^2+x_i^2+c_i)\)

但是对于每个\(X\)来说\(X^2\)固定不用加入决策,所以决策点变为\((x_i,x_i^2+c_i)\)

对于线段树的每个端点维护一个下凸包

如果我们大力平衡树维护复杂度\(O(nlog^2n)\)

观察发现可以按\(x_i\)离线插入,维护凸包变成均摊\(O(1)\),复杂度\(O(blogn)\)

线段树分治

标签:线段树   线段   端点   ref   判断   最小   维护   二分   序列   

原文地址:https://www.cnblogs.com/knife-rose/p/12388274.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!