主席树
文章平均质量分 93
200815147
这个作者很懒,什么都没留下…
展开
-
[BZOJ]2588: Spoj 10628. Count on a tree 主席树+LCA
Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。第二行有N个整数,其中第i个整数表示点i的权值。后面N-1行每行两个整数(x,y),表示点x到点原创 2017-04-15 11:31:39 · 422 阅读 · 0 评论 -
[BZOJ]4448: [Scoi2015]情报传递 主席树+LCA
主席树+LCA原创 2017-09-22 14:39:58 · 300 阅读 · 0 评论 -
4556: [Tjoi2016&Heoi2016]字符串 后缀数组+主席树+二分
Description 佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物。生日礼物放在一个神奇的箱子中。箱子外边写了一个长为n的字符串s,和m个问题。佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职加薪,出任CEO,嫁给高富帅,走上人生巅峰。每个问题均有a,b,c,d四个参数,问你子串s[a..b]的所有子串和s[c..d]的最长公共前缀的长度的最大值是多少?佳媛姐姐并不擅长做...原创 2018-04-08 21:52:18 · 221 阅读 · 0 评论 -
区间mex的两种做法
今天看到有人在做mex,才想起来我只会根号的做法,赶紧学习了一下log的做法。莫队算法:直接对权值分块,然后莫队直接上,每次找到第一个没有满的块,然后直接找一下答案就可以了。主席树:开n棵权值线段树,第i棵维护1~i区间每个数最后一次出现的位置,那么找区间[l,r][l,r][l,r]的mex就变成了在第r棵线段树上找从左到右第一个小于l的点,这个只需要维护一下区间最小值就可以实现...原创 2018-04-18 21:54:54 · 3167 阅读 · 1 评论 -
loj#6100. 「2017 山东二轮集训 Day1」第一题 主席树+二分
题目描述:小火车沉迷垃圾手游不能自拔,正在玩碧蓝航线,可惜小火车的舰(lao)队(po)练度太低打不过副本,所以他只好去刷其余的副本来升级。总共有 n 个副本编号从 1 到 n ,每个副本有个难度值 a_i,小火车每天按照顺序刷连续的一段副本,第 j 天会刷的副本必须落在 l 到 r 之间。但是他是个很懒的人,每天一开始他的懒惰值为 0,当他刷完一个副本以后懒惰值就会异或上 a_i ,...原创 2018-12-07 13:51:26 · 483 阅读 · 0 评论 -
[BZOJ]2119: 股市的预测 分治+主席树+后缀数组
Description墨墨的妈妈热爱炒股,她要求墨墨为她编写一个软件,预测某只股票未来的走势。股票折线图是研究股票的必备工具,它通过一张时间与股票的价位的函数图像清晰地展示了股票的走势情况。经过长时间的观测,墨墨发现很多股票都有如下的规律:之前的走势很可能在短时间内重现!如图可以看到这只股票A部分的股价和C部分的股价的走势如出一辙。通过这个观测,墨墨认为他可能找到了一个预测股票未来走势的方法。进...原创 2019-01-17 22:38:12 · 209 阅读 · 0 评论 -
[BZOJ]3218: a + b Problem 主席树优化建图+网络流
Solution这题算是经典题了……但是一直到今天才做。本来以为很快就能切了这题,没想到搞了很久,一直有一个点过不去,也不知道问题是什么,反正是有关相同数的合并的问题。后来不知怎么解决,想到一个不错的方法:离散化,强行让所有数都不同就可以了。Code#include<bits/stdc++.h>using namespace std;#define LL long lon...原创 2019-01-15 22:13:34 · 279 阅读 · 0 评论 -
[BZOJ]3956: Count 主席树+单调栈
Solution问题其实就是求两端点都为区间最大值的点对数量,先用单调栈求出每个点作为最大值可以延伸到的左右端点,然后可以发现答案都是这样的:对于一对(x,y)(x,y)(x,y),要么是xxx向右延伸到y−1y-1y−1,要么是yyy向左延伸到x+1x+1x+1,所以问题就转化为区间内某个范围内的数有多少个,直接主席树即可。注意相同的数的处理,详情可以看代码。Code#include&l...原创 2019-01-15 22:20:22 · 212 阅读 · 0 评论 -
[LOJ]#2310. 「APIO2017」斑斓之地 主席树
Solution把有河流的格子称为黑点,其它称为白点,那么连通块数可以这样算:矩形内白点数−1×2-1\times2−1×2白矩形数−2×1-2\times1−2×1白矩形数+2×2+2\times2+2×2白矩形数。这个东西好像在冬令营上提到了一下,但是没有听清,路过的大佬如果知道可以告诉我一下。我只能够感性地理解一下。然后这四个东西用主席树维护一下就好了。Code#include&l...原创 2019-02-15 17:14:25 · 521 阅读 · 1 评论 -
[Codeforces] 1037 H. Security 后缀自动机+主席树
Solution这题思路还是比较简单的。由于∑∣S∣\sum|S|∑∣S∣较小,所以可以枚举答案前多少位是和给出的串是一样的,再枚举下一位填什么,这样问题就转化为快速判断一个区间中某个字符串是否出现过。把parent树建出来后,就是询问某个点子树中有没有值域在某个范围内的点,可以用主席树解决。需要注意的是,当询问长度为lenlenlen的串是否在[l,r][l,r][l,r]中出现时,询问...原创 2019-04-11 17:26:48 · 352 阅读 · 0 评论 -
3011: Running Away From the Barn 可并堆/倍增+树链剖分+树上差分/dfs序+主席树
Description 给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于**等于**l的点有多少个。题解:这道题本来是我在学可并堆的时候找到的,但是我并没有想出可并堆的做法,下面提供三种做法。1、可并堆首先预处理出每个点到根的距离v[x]v[x]v[x],然后以此为关键字对每个节点先建个大根堆,然后dfs一次,每次把所有儿子和自己合并,然后一直删堆顶,直到满足条件为...原创 2018-03-09 13:00:53 · 239 阅读 · 0 评论 -
5177: [Jsoi2013]贪心的导游 暴力+主席树
Description 南京有一条著名的购物街。购物街嘛,就是一排整齐的商店啦~ 导游小Z每次都会把游客团带到购物街里走一段,然后选择一个商店进去购物。小Z接待的游客都是购物狂,他们恨不得将店内的商品洗劫一空,也就是说,只要他们能买,就一定会继续买(钱够不够你不用考虑,他们都有信用卡可以透支)。但是有一点,他们都非常讲究平等、很谦虚,每个人都不能忍受比别人多买什么东西或者少买什么东西,于是他们...原创 2018-03-15 14:23:47 · 271 阅读 · 0 评论 -
[BZOJ]3744: Gty的妹子序列 分块+树状数组+主席树
分块+树状数组+主席树原创 2017-07-16 15:57:31 · 541 阅读 · 0 评论 -
[BZOJ]2653: middle 线段树合并+二分
Description一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整。给你一个长度为n的序列s。回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[c,d]之间的子序列中,最大的中位数。其中a这是一道好题。我们首先可以二分答案,然后判断是否可行。判断的话就把所有比当前二分的答案小的数设为-1,其他数设为1,原创 2017-06-29 11:20:52 · 331 阅读 · 0 评论 -
[BZOJ]2809: [Apio2012]dispatching 主席树(线段树合并)
主席树(线段树合并)原创 2017-09-16 15:31:22 · 276 阅读 · 0 评论 -
[BZOJ]3207: 花神的嘲讽计划Ⅰ 主席树+hash
主席树+hash原创 2017-09-25 16:14:42 · 270 阅读 · 0 评论 -
[BZOJ]3439: Kpm的MC密码 trie树+主席树(线段树合并)
trie树+主席树(线段树合并)原创 2017-10-28 09:31:58 · 273 阅读 · 0 评论 -
[BZOJ]4012: [HNOI2015]开店 树链剖分+主席树(线段树合并)
树链剖分+主席树(线段树合并)原创 2017-11-23 17:01:32 · 291 阅读 · 0 评论 -
[POJ]2104 K-th Number 主席树&线段树合并&整体二分
两个月前打了个主席树……今天又打了个线段树合并,发现线段树合并的代码挺短的……(其实也差不多)主席树:#include#include#include#include#define maxn 100010using namespace std;int A[maxn],b[maxn],n,m;struct array{ int x,id;}a[maxn];bool cm原创 2017-06-28 08:39:28 · 659 阅读 · 0 评论 -
3674: 可持久化并查集加强版 主席树+并查集按秩合并
Description Description: 自从zkysb出了可持久化并查集后…… hzwer:乱写能AC,暴力踩标程 KuribohG:我不路径压缩就过了! ndsf:暴力就可以轻松虐! zky:……n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出原创 2018-01-14 17:33:17 · 298 阅读 · 0 评论 -
3123: [Sdoi2013]森林 主席树的启发式合并
题面是图片就不复制了……题解:询问可以用主席树轻松地解决,但是连边的话就有点麻烦了,本题采用启发式合并来解决这个问题。启发式合并实际上就是把小的合并到大的上面,这样每次size至少都会翻倍,最多翻倍lognlogn次,对于主席树来说,每次合并重新建树要nlognnlogn的时间,所以总的时间复杂度为O(nlog2n)O(nlog^2n)。注意连边的时候一定要连双向边。代码:#inc原创 2018-01-08 21:00:36 · 311 阅读 · 0 评论 -
[LOJ]#2720. 「NOI2018」你的名字 后缀自动机+主席树
Solution首先讲一下一个68分的水法:建广义SAM,然后每次询问完之后暴力撤销,复杂度未知。这种做法本身复杂度好像就不对,而且也没法扩展,考虑另外的做法。考虑每个询问串前缀的贡献。首先要保证本质不同,所以先求出每个前缀的最短的没有在之前出现过的后缀,这个可以对每个询问串建SAM求。然后要求出每个前缀的最短的没有在SSS出现过的后缀,如果是68分,相当于在SSS的SAM上匹配,求最长匹配...原创 2019-04-13 17:00:09 · 386 阅读 · 0 评论