树套树
gjghfd
这个作者很懒,什么都没留下…
展开
-
bzoj1901 [ Zju2112 ] --树状数组套主席树
树状数组套主席树模板题。。。题目大意:给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后读入一系列的指令,原创 2017-05-26 16:41:15 · 239 阅读 · 0 评论 -
bzoj3489 -- 可持久化树套树
令lastilast_i表示aia_i前一个出现的位置(没出现过为00),nextinext_i表示aia_i后一个出现的位置(没出现过为n+1n+1)。 那么要满足的条件是:lasti<l,nexti>r,l≤i≤r last_i<l,next_i>r,l \leq i\leq r 将aia_i按lastilast_i排序,对nextinext_i建一棵主席树,每一个节点存一个线段树记录区间内原创 2017-07-04 17:14:10 · 465 阅读 · 0 评论 -
[ 线段树套treap ] [ TJOI2016&&HEOI2016 ] BZOJ4552
题解#include<bits/stdc++.h>using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;}inline void原创 2017-12-13 13:29:04 · 302 阅读 · 0 评论 -
[ 树套树 ] [ 二次函数 ][ neerc2011 flight ] BZOJ2646
取到最大值的位置有 22 种情况:在二次函数顶点:可用树套树维护。在 ll 或 rr 上:建棵线段树,每个节点存区间内所有二次函数的轮廓线,查询时在轮廓线上二分。合并 22 个轮廓线时先求出所有区间,再对每个区间不停求交点。#include<bits/stdc++.h>using namespace std;inline char nc(){ static char buf[100原创 2017-12-28 17:01:44 · 533 阅读 · 0 评论