
可持久化线段树
olahiuj
我的女朋友不抽烟不喝酒不傲娇不化妆不存在
展开
-
poj2104 K-th Number 离散+可持久化线段树
DescriptionYou are working for Macrohard company in data structures department. After failing your previous task about key insertion you were asked to write a new data structure that would be able to r原创 2017-12-07 20:50:23 · 235 阅读 · 0 评论 -
bzoj4571 [Scoi2016]美味 按位贪心+主席树
Description一家餐厅有 n 道菜,编号 1…n ,大家对第 i 道菜的评价值为 ai(1≤i≤n)。有 m 位顾客,第 i 位顾客的期望值为 bi,而他的偏好值为 xi 。因此,第 i 位顾客认为第 j 道菜的美味度为 bi XOR (aj+xi),XOR 表示异或运算。第 i 位顾客希望从这些菜中挑出他认为最美味的菜,即美味值最大的菜,但由于价格等因素,他只能从第li 道到第...原创 2018-10-12 20:37:28 · 194 阅读 · 0 评论 -
bzoj4026 dC Loves Number Theory 主席树
DescriptiondC 在秒了BZOJ 上所有的数论题后,感觉萌萌哒,想出了这么一道水题,来拯救日益枯竭的水题资源。给定一个长度为 n的正整数序列A,有q次询问,每次询问一段区间内所有元素乘积的φ(φ(n)代表1~n 中与n互质的数的个数) 。由于答案可能很大,所以请对答案 mod 10^6 + 777。(本题强制在线,所有询问操作的l,r都需要 xor上一次询问的答案 lastans...原创 2018-10-07 12:54:58 · 194 阅读 · 0 评论 -
bzoj3653 谈笑风生 主席树
Description设T 为一棵有根树,我们做如下的定义:设a和b为T 中的两个不同节点。如果a是b的祖先,那么称“a比b不知道高明到哪里去了”。设a 和 b 为 T 中的两个不同节点。如果 a 与 b 在树上的距离不超过某个给定常数x,那么称“a 与b 谈笑风生”。给定一棵n个节点的有根树T,节点的编号为1 到 n,根节点为1号节点。你需要回答q 个询问,询问给定两个整数p...原创 2018-10-15 21:32:17 · 147 阅读 · 0 评论 -
cf650D Zip-line 主席树+lis
Description给定一个长度为n的序列以及m个操作,每个操作形如“ai bi”,表示将序列中第ai个数改为bi。对于每个操作,求出序列的最长严格上升子序列长度。注意:每个操作之间彼此独立。(即每次操作未进行时的序列是输入时的原序列,而不是上一次操作后得到的序列)n,m<=5e5Solutionsb了,没看到有一个点n是5e5的挂了10’由于每次只改动一个位置x,...原创 2018-10-22 20:55:54 · 246 阅读 · 0 评论 -
bzoj2653 middle 二分+可持久化线段树
Description一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整。给你一个长度为n的序列s。回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[c,d]之间的子序列中,最大的中位数。其中a<b<c<d。位置也从0开始标号。我会使用一些方式强制你在线。n<=20000,Q<=25000Sol...原创 2018-10-24 11:37:08 · 157 阅读 · 0 评论 -
bzoj4504 K个串 可持久化线段树+堆
Description兔子们在玩k个串的游戏。首先,它们拿出了一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)。兔子们想知道,在这个数字序列所有连续的子串中,按照以上方式统计其所有数字之和,第k大的和是多少。1 <= n <= 100000, 1 <= k <= 200000, 0 <= |...原创 2018-11-27 19:37:23 · 239 阅读 · 0 评论 -
jzoj4240 [五校联考5day2]游行 拓扑排序+倍增lca+线段树优化建图
Description恶梦是学校里面的学生会主席。他今天非常的兴奋,因为学校一年一度的学生节开始啦!!在这次节日上总共有N个节目,并且总共也有N个舞台供大家表演。其中第i个节目的表演时间为第i个单位时间,表演的舞台为Ai,注意可能有多个节目使用同一个舞台。作为恶梦的忠实粉丝之一的肥佬,当然要来逛一下啦,顺便看一下能不能要到恶梦的签名。肥佬一开始会先在A1 看完节目1再去闲逛。肥佬可以在...原创 2019-01-29 22:11:45 · 285 阅读 · 0 评论 -
bzoj4771 七彩树 可持久化线段树+set
Description给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点。每个节点都被染上了某一种颜色,其中第i个节点的颜色为c[i]。如果c[i]=c[j],那么我们认为点i和点j拥有相同的颜色。定义depth[i]为i节点与根节点的距离,为了方便起见,你可以认为树上相邻的两个点之间的距离为1。站在这棵色彩斑斓的树前面,你将面临m个问题。每个问题包含两个整数x和d,表示询问x...原创 2019-03-07 08:46:23 · 240 阅读 · 0 评论 -
jzoj6086 动态半平面交 可持久化线段树+set
Description给定一棵n个节点带点权的树,要求资瓷q次询问格式为(x,d),即求出x子树内距离x不超过d的点的点权的lcm,对998244353取模n≤105,  ai≤107n\le10^5,\; a_i\le10^7n≤105,ai≤107Solution之前做过序列上的离线做法,上树就有点懵了很常见的套路吧,没想到有点可惜先不管那个深度...原创 2019-03-27 16:30:28 · 240 阅读 · 0 评论 -
CF1142B Lynyrd Skynyrd 倍增+可持久化线段树
Description给一个n排列p,一个长为m的序列a,q次询问[l,r]求l到r是否存在长度为n的子序列恰好与p循环同构n,m,q≤2∗105n,m,q\le 2*10^5n,m,q≤2∗105Solution用图表示这个东西就是a按照p中的顺序向后连边,题目就等价于问l到r能不能走完n-1步了考虑倍增这个东西,那么我们就能求出以x为起点向后n-1步最前到哪里,然后可持久化线段树...原创 2019-04-07 11:48:13 · 259 阅读 · 0 评论 -
bzoj1878 [SDOI2009]HH的项链 主席树
DescriptionHH有一串由各种漂亮的贝壳组成的项链。HH相信不同的贝壳会带来好运,所以每次散步 完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH不断地收集新的贝壳,因此他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答。。。因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。N ≤ 50000,M ≤ 200...原创 2018-10-06 08:11:19 · 225 阅读 · 0 评论 -
bzoj4556 [Tjoi2016&Heoi2016]字符串 可持久化线段树+后缀数组+二分
#Description佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物。生日礼物放在一个神奇的箱子中。箱子外边写了一个长为n的字符串s,和m个问题。佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职加薪,出任CEO,嫁给高富帅,走上人生巅峰。每个问题均有a,b,c,d四个参数,问你子串s[a…b]的所有子串和s[c…d]的最长公共前缀的长度的最大值是多少?佳媛姐姐并不擅长...原创 2018-09-20 22:28:55 · 181 阅读 · 0 评论 -
jzoj5850 e 树上主席树
DescriptionSolution不难发现S为k个点到它们lca的路径的并。对于询问我们在树上建可持久化权值线段树,然后找前驱和后继即可。这样是一个log的,然后就做完了 一个比较好想+好写的做法是树链剖分+set,这个可以拿来拍 如果知道一堆点的lca等价于其中dfs序最小和最大两个点的lca,那么就可以跑得快Code#include <st...原创 2018-08-25 15:22:31 · 255 阅读 · 0 评论 -
bzoj2588 Count on a tree 可持久化线段树+lca
Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。N,M强制在线Solution可持久化线段树不仅可以用在序列上,还可以在树上做。具体操作就是以每个点的父亲作为上一版本建新的树 考虑查询的两原创 2018-01-06 22:51:28 · 206 阅读 · 0 评论 -
bzoj3674 可持久化并查集加强版 可持久化线段树
Description自从zkysb出了可持久化并查集后…… hzwer:乱写能AC,暴力踩标程 KuribohG:我不路径压缩就过了! ndsf:暴力就可以轻松虐! zky:……n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 请注意本题采用强制原创 2018-01-17 16:37:13 · 233 阅读 · 0 评论 -
bzoj3207 花神的嘲讽计划Ⅰ
Description背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的!【hqz:大笨J】” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天DJ在给吾等众蒟蒻讲题,花神在一边做题无聊,就跑到了一边跟吾等众蒟蒻一起听。以下是部分摘录: 1. “J你在讲什么!” “我在讲XXX!” “哎你傻不傻的!这么麻烦,直接XX原创 2018-02-06 16:51:53 · 179 阅读 · 0 评论 -
bzoj2223 [Coci 2009]PATULJCI
DescriptionSolution第一眼莫队啊,敲完发现还要线段树统计,那还不如直接上主席树qaqCode#include <stdio.h>#include <string.h>#define rep(i,st,ed) for (int i=st;i<=ed;++i)const int N=600005;s...原创 2018-02-08 16:11:12 · 170 阅读 · 0 评论 -
bzoj4756 [Usaco2017 Jan]Promotion Counting
Description给定一棵树,每个节点拥有一个权值,求以每个节点为根的子树中有多少个节点的权值大于它Solution转为dfs序然后主席树,刷水题有益身心健康据说这题解法十分多,比如线段树合并,比如树上启发式合并,比如树上主席树Code#include <stdio.h>#include <string.h>#include ...原创 2018-04-18 20:06:18 · 187 阅读 · 0 评论 -
bzoj3514 Codechef MARCH14 GERALD07加强版 LCT+可持久化线段树
DescriptionN个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。100%的数据,1≤N、M、K≤200,000。 2016.2.26提高时限至60sSolution用last[i]表示加入第i条边后形成的环中最小编号,如果不形成环就是0 那么这里有一个很棒棒性质。对于询问[L,R],当last[i]< L时才会减少连通块的数...原创 2018-04-23 09:18:50 · 195 阅读 · 0 评论 -
bzoj3123 [Sdoi2013]森林 可持久化线段树+启发式合并
Description小Z有一片森林,含有N个节点,每个节点上都有一个非负整数作为权值。初始的时候,森林中有M条边。小Z希望执行T个操作,操作有两类:Q x y k查询点x到点y路径上所有的权值中,第k小的权值是多少。此操作保证点x和点y连通,同时这两个节点的路径上至少有k个点。L x y在点x和点y之间连接一条边。保证完成此操作后,仍然是一片森林。为了体现程序的在线性,我...原创 2018-06-14 21:35:29 · 219 阅读 · 0 评论 -
bzoj3545 [ONTAK2010]Peaks 可持久化线段树+kruskal重构树
Description同3545,强制在线Solution首先需要知道一个叫做kruskal重构树的东西 我们先对边权排序,对于一条连通两个不同集合的边新建一个额外点,把x和y分别作为新点的左右儿子,并对新点赋权为边权 这样做可以得到一棵拥有不错性质的二叉树:首先除叶节点外这是一个大根堆其次原图中两点间路径上的最大边为新树上两点lca的点权知道了这些就很好做了...原创 2018-06-20 17:33:36 · 211 阅读 · 0 评论 -
51nod1472 cf549F 取余最大值 单调栈+可持久化线段树
Description有一个长度为n的数组a,现在要找一个长度至少为2的子段,求出这一子段的和,然后减去最大值,然后对k取余结果为0。问这样的子段有多少个。1 ≤ n ≤ 300 000, 1 ≤ k ≤ 1 000 000 1 ≤ ai ≤ 10^9Solution等快递的时候找题写写,结果看完就会,写完已经下午了( ╯□╰ )注意到这个最大值很烦,考虑正反两次...原创 2018-07-25 14:05:01 · 193 阅读 · 0 评论 -
jzoj5221 [GDOI2018模拟7.10]A 主席树
Description n≤105n≤105n\leq 10^5Solution第一眼dsu on tree然后开一个桶,然后我写了主席树 结果这是最简单的题,直接每个点记录包含的最小、最大,和size比较一下就知道了Code#include <stdio.h>#include <string.h>#include <a...原创 2018-07-20 14:49:34 · 268 阅读 · 0 评论 -
bzoj 4012 [HNOI2015]开店 树链剖分+可持久化线段树
Description给一棵树,Q次询问颜色在[L,R]之间的点到x的距离之和,强制在线n≤1.5×105,Q≤2×105n\le1.5\times10^5,Q\le2\times10^5n≤1.5×105,Q≤2×105Solution带修改的话就是树套树,这里不用修改就可持久化就好了说一下这里标记永久化的做法吧对于一个修改区间[l,r],如果它完全包含了当前线段区间[tl,tr...原创 2019-04-02 08:25:16 · 163 阅读 · 0 评论