
【数据结构】树套树
文章平均质量分 67
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ3196】【TYVJ1730】二逼平衡树
【题目链接】点击打开链接【思路要点】用外层树状数组套内层权值线段树,那么每一个区间对应的权值线段树可以表示为\(O(LogN)\)棵线段树的和(差)。那么在得到的线段树上二分即可在\(O(LogNLogV)\)的时间内解决题目中所给出的询问。注意修改仅涉及单点修改,那么至多会修改\(O(LogN)\)棵线段树,即修改的时间复杂度为\(O(LogNLo原创 2018-01-15 09:56:16 · 341 阅读 · 0 评论 -
【BZOJ3489】A simple rmq problem
【题目链接】点击打开链接【思路要点】动态开点,树套树。时间复杂度 O(MLog2N)O(MLog^2N)O(MLog2N) 。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 100005#define MAXP 10000005template <typename T&g...原创 2018-09-20 14:45:12 · 259 阅读 · 0 评论 -
【BZOJ3946】无聊的游戏
【题目链接】 点击打开链接 【思路要点】 记 aiaia_i 表示 sisis_i 和 si−1si−1s_{i-1} 的 lcplcplcp 的长度,对一段区间 [l,r][l,r][l,r] 增加一个前缀,那么 al+1,al+2,...,aral+1,al+2,...,ara_{l+1},a_{l+2},...,a_r 都会对应增加这个前缀的长度, al...原创 2018-09-06 12:52:12 · 1051 阅读 · 3 评论 -
【BZOJ3217】ALOEXT
【题目链接】点击打开链接【思路要点】替罪羊树套权值线段树。时间复杂度\(O(NLog^2N)\)。由于常数较大,笔者的代码无法在BZOJ上通过。【代码】/*TLE of Large Constant*/#include<bits/stdc++.h>using namespace std;#define MAXN 400005#define MAXV 1048576#defin...原创 2018-04-24 12:58:05 · 423 阅读 · 0 评论 -
【BZOJ3065】带插入区间K小值
【题目链接】点击打开链接【思路要点】替罪羊树套权值线段树。时间复杂度\(O(NLog^2N)\)。【代码】#include<bits/stdc++.h>using namespace std;#define MAXN 70005#define MAXV 70005#define MAXP 20000005#define ALPHA 0.68template <type...原创 2018-04-23 20:32:02 · 288 阅读 · 0 评论 -
【BZOJ2253】纸箱堆叠
【题目链接】点击打开链接【思路要点】树套树,KDTree,CDQ分治都能做。CDQ分治的话需要注意这里要求“严格小于”,取中点时应当保证左右两边第一维坐标不会相等。时间复杂度\(O(NLog^2N)\)或\(O(N\sqrt{N})\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;t...原创 2018-03-25 18:07:12 · 426 阅读 · 0 评论 -
【BZOJ3110】【ZJOI2013】K大数查询
【题目链接】点击打开链接【思路要点】补档博客,无题解。【代码】//树套树#include<bits/stdc++.h>using namespace std;#define MAXN 50005#define UTRAL 16000005struct Node {int lc,rc,tag;long long len,sum;};int n,m,N,size,BIT[MAX...原创 2018-03-23 20:50:19 · 207 阅读 · 0 评论 -
【BZOJ3262】陌上花开
【题目链接】点击打开链接【思路要点】直观地来想,本题可以先排序一维,然后使用二维数据结构(树套树,KD-Tree)来解决。时间复杂度\(O(NLog^{2}N)\)或\(O(N\sqrt{N})\)。或者也可以用CDQ分治来解决本题,时间复杂度同样为\(O(NLog^{2}N)\)。其中树套树的空间复杂度高达\(O(NLog^{2}N)\),粗糙的实原创 2018-01-16 10:34:49 · 492 阅读 · 0 评论 -
【BZOJ3435】【UOJ55】【WC2014】紫荆花之恋
【题目链接】BZOJUOJ【思路要点】考虑点\(i\)和点\(j\)路径上任意一点\(k\),那么$$R_{i}+R_{j}≥Dist(i,j) \Leftrightarrow R_{i}-Dist(i,k)≥Dist(j,k)-R_{j}$$令\(F_{i,k}=R_{i}-Dist(i,k)\),即\(F_{i,k}≥-F_{j,原创 2018-01-13 13:18:33 · 1333 阅读 · 0 评论 -
【LOJ2251】「ZJOI2017」树状数组
【题目链接】点击打开链接【思路要点】考虑 Add(x)Add(x)Add(x) 何时会对 Find(y)Find(y)Find(y) 产生影响。不难发现,当且仅当 x≥yx\geq yx≥y , Add(x)Add(x)Add(x) 会对 Find(y)Find(y)Find(y) 产生影响。因此 Find(y)Find(y)Find(y) 实际上维护了数组的后缀和。对于询...原创 2019-06-22 14:43:39 · 316 阅读 · 0 评论