![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树套树
_beginend
这个作者很懒,什么都没留下…
展开
-
Codeforces 983D Arkady and Rectangles 扫描线+线段树套堆
题意一开始二维坐标每个点的颜色都是0。现在会按顺序加入n个矩形,第i个矩形的颜色是i,每次会把原来位置上的矩形覆盖掉。问最后平面上有多少种不同的颜色。 n≤100000n≤100000n\le100000分析考虑用线段树来维护扫描线。 每次加入线段后把标记永久化,线段树每个节点用一个带删除的堆维护这个节点的每个标记,然后维护mxmxmx表示在这个节点表示的线段里面,编号最大的没...原创 2018-05-24 20:06:40 · 264 阅读 · 0 评论 -
bzoj 3217: ALOEXT 替罪羊树套trie
题意给你一个数列,要求资瓷四个操作: 插入一个数 删除一个数 修改一个数 给出一个区间[l,r],设w为区间内第二大,问w与区间内元素异或的最大值。 n,m<=100000,元素大小小于2^20,强制在线分析都是套路题。直接外层替罪羊树内层trie就好了。注意要垃圾回收。 第一次写替罪羊树的删除操作。一开始想的是用删除节点的后继来替代删除节点,然后写的我一度开始怀疑人生。后来才知道替罪羊原创 2017-12-06 16:28:54 · 421 阅读 · 0 评论 -
bzoj 3065: 带插入区间K小值 替罪羊树套线段树
题意给出一个序列,要求资瓷以下操作: 在某个位置前插入一个数 修改某个位置的数 询问区间第k小 强制在线 原序列长度 <= 35000 插入个数 <= 35000,修改个数 <= 70000,查询个数 <= 70000 ,0 <= 每时每刻的权值 <= 70000分析由于强制在线且要插入,所以外层显然不能用线段树之类的静态数据结构,那么就考虑用平衡树。内层的话由于是找第k小,所以选用了原创 2017-12-02 07:20:21 · 441 阅读 · 0 评论 -
bzoj 1513: [POI2006]Tet-Tetris 3D 线段树套线段树
题意Task: Tetris 3D “Tetris” 游戏的作者决定做一个新的游戏, 一个三维的版本, 在里面很多立方体落在平面板,一个立方体开始落下直到碰上一个以前落下的立方体或者落地即停止. 作者想改变一下游戏的目的使得它更大众化,在新游戏中你将知道落下的立方体信息以及位置,你的任务就是回答所有立方体落下后最高的方块的高度.所有的立方体在下落过程中都是垂直的并且不会旋转.平板左下角坐标为原点,并原创 2017-09-27 20:21:57 · 326 阅读 · 0 评论 -
bzoj 3489: A simple rmq problem 可持久化线段树套可持久化线段树
题意给出n个数,每个数为[1,n],有m个询问,每次询问[l,r]内最大的只出现过一次的数。强制在线。 n<=100000,m<=200000分析一开始还以为是分块,但想了想发现不可做,然后想了一下主席树什么的也还是不会做,就只好去看题解了。然后发现有好多神奇的做法,像KDtree,树套树,树套堆等,但我到现在还不会怎么用树套堆来做。先求出每一个位置的next和last分别表示前面第一个和它的数一原创 2016-11-30 20:46:27 · 442 阅读 · 0 评论 -
bzoj 2141: 排队 树状数组套线段树
题目传送门分析树状数组套线段树。 对于每一次交换x和y的操作,先减去在交换之前x和y分别与a[x+1..y-1]产生了多少逆序对,再加上交换后x和y分别与a[x+1..y-1]产生了多少逆序对,然后再进行交换操作就好了。一开始的想法是线段树套线段树,但是很明显线段树各方面的指标都没有树状数组优秀,所以就果断改成了树状数组。貌似分块+二分或分块套树状数组或线段树套平衡树也是可做的,懒得打了。代码#i原创 2016-10-22 11:56:35 · 403 阅读 · 0 评论 -
bzoj 3110: [Zjoi2013]K大数查询 线段树套线段树
Description有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c 如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Input第一行N,M 接下来M行,每行形如1 a b c或2 a b cOutput输出每个询问的结果Sample Input2 51 1 2 11 1 2 22 1 1 22原创 2016-10-13 20:38:47 · 389 阅读 · 0 评论 -
bzoj 1901: Zju2112 Dynamic Rankings 树状数组套线段树 cdq分治
题目传送门树套树一棵树状数组,每个节点上都是一棵权值线段树(不是可持久化线段树),线段树动态开节点。 然后每次查询的时候二分答案就好了。 时间复杂度O(nlog^3) 勉强水过……#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace原创 2016-10-23 20:16:33 · 470 阅读 · 0 评论 -
Codechef CHEFFIB 点分树套树状数组
题意有一棵n个节点的树,初始每个节点的权值均为0。要求资瓷q个操作: 1 u m a b表示对于任意一个节点v,若dis(u,v)≤mdis(u,v)≤mdis(u,v)\le m,则节点v的权值加上以a和b为开头的斐波那契数列的第dis(u,v)dis(u,v)dis(u,v)项。 2 u询问节点u的权值 n,q≤300000n,q≤300000n,q\le300000分析考虑...原创 2018-05-30 17:14:04 · 360 阅读 · 0 评论