
数据结构
lvmaooi
这个作者很懒,什么都没留下…
展开
-
3261: 最大异或和
最大异或和Description给定一个非负整数序列{a},初始长度为N。有M个操作,有以下两种操作类型:1、Ax:添加操作,表示在序列末尾添加一个数x,序列的长度N+1。2、Qlrx:询问操作,你需要找到一个位置p,满足l<=p<=r,使得:a[p] xor a[p+1] xor … xor a[N] xor x 最大,输出最大是多少。Input第一行包含两个整数 N...原创 2018-10-05 16:46:19 · 767 阅读 · 0 评论 -
整体二分概述
学会了CDQ之后,整体二分变得简单了起来。 对于一些需要多次二分的题目,并且二分的做法相同,我们可以考虑整体二分。就是说考虑分治,普通的二分做法我们一个一个查询,而这个把所有询问打包,一波查询,分配到两边递归下去。思想很好理解。3110: [Zjoi2013]K大数查询Time Limit: 20 Sec Memory Limit: 512 MBDescription...原创 2018-06-11 21:48:52 · 942 阅读 · 0 评论 -
bzoj4170: 极光(CDQ分治)
4170: 极光Time Limit: 30 Sec Memory Limit: 512 MBDescription“若是万一琪露诺(俗称rhl)进行攻击,什么都好,冷静地回答她的问题来吸引她。对方表现出兴趣的话,那就慢 慢地反问。在她考虑答案的时候,趁机逃吧。就算是很简单的问题,她一定也答不上来。” –《上古之魔书》 天空中出现了许多的北极光,这些北极光组成了一个长度为...原创 2018-06-11 21:04:17 · 382 阅读 · 0 评论 -
CDQ分治概述
最近学习了一波CDQ,发现很巧妙啊。也算是给非常规的数据结构解法起了一个头。 还是首先简单说一说CDQ是什么。就是说对于一些不要求强制在线的题目,我们使用分治的思想,花费单logloglog的时间把它变成离线问题。正好有些题目的离线问题是比较简单的。 具体是什么意思呢?我们对于每一层分治,只考虑前一半对于后一半的影响,然后在每个询问当中记录下来影响。最后把所有影响合并就可以得到每一个询问的答案...原创 2018-06-11 20:43:55 · 1187 阅读 · 0 评论 -
睡觉困难综合症(树链剖分+线段树)
睡觉困难综合症题目描述由乃这个问题越想越迷糊,已经达到了废寝忘食的地步。结果她发现……晚上睡不着了!只能把自己的一个神经元(我们可以抽象成一个树形结构)拿出来,交给Deus。这个神经元是一个有nnn个点的树,每个点的包括一个位运算optoptopt和一个权值xxx,位运算有&,l,^三种,分别用1,2,3表示。为了治疗失眠,Deus可以将一些神经递质放在点xxx上,初始的刺...原创 2018-05-16 20:43:06 · 605 阅读 · 0 评论 -
树(树链剖分)
树 \ \ \ \ \ \ \ \ 解:傻逼的我考试的时候去写这道题,没调出来,结果爆零了-_- 其实思想是很好懂的,一眼是一个树剖,然后陷入了无尽原创 2018-05-16 20:15:24 · 1117 阅读 · 0 评论 -
drink(链表)
drink先看看题吧~ \ \ \ \ \ \ \ 解:观察数据范围,可能标算是个N2N2N^2的,诶,数字在0~9之间。一定有什么性质!!!然而并没有。唉,普及组题目都做不来了,我原创 2018-05-16 19:14:32 · 335 阅读 · 0 评论 -
weed(线段树)
题面解:这道题学习到了线段树的新姿势,啊啊啊啊,还是自己太菜了。 这道题告诉我们线段树除了O1合并之外,在数据可以原创 2018-05-09 20:03:48 · 262 阅读 · 0 评论 -
动态开点线段树+权值线段树概述
一开始觉得什么动态开点啥的都特别叼。实际上并没有什么,就是在空间不够的情况下,把不需要的节点变成虚点就好了,具体什么意思,我们来看一道题:P1908 逆序对题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆...原创 2018-03-28 16:15:56 · 5076 阅读 · 3 评论 -
[国家集训队]小Z的袜子(莫队)
[国家集训队]小Z的袜子题目描述作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这NNN只袜子从1到NNN编号,然后从编号LLL到RRR(LLL 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子...原创 2018-03-28 14:39:19 · 197 阅读 · 0 评论 -
树链剖分概述
说一下树链剖分,一开始听这个名字感觉像是树上结构一样。结果是个数据结构。要理解这个数据结构我们先来了解几个概念:树链剖分这里我们主要运用的是重链剖分。也就是说我们记录每个节点代表子树的size。每个节点向它size最大的儿子连一条重边,其它的连一条轻边。然后连出来大概是这样的:我们把红色的叫做重链,其它的叫做轻边。很容易的可以看出来轻边的长度为1,每个点在且只在一条重链上。轻边把所有重...原创 2018-03-28 14:31:01 · 297 阅读 · 0 评论 -
2527:[Poi2011]Meteors(整体二分)
2527:[Poi2011]Meteors时间限制: 2000 ms 内存限制: 131072 KB题目描述Byteotian Interstellar Union有NNN个成员国。现在它发现了一颗新的星球,这颗星球的轨道被分为MMM份(第MMM份和第1份相邻),第iii份上有第AiAiA_i个国家的太空站。这个星球经常会下陨石雨。BIU已经预测了接下来KKK场陨石...原创 2018-06-11 21:59:00 · 216 阅读 · 0 评论 -
[HNOI2015]接水果(整体二分)
其实我真的不想写这道题,然而迫于有一个技巧,不得不写一写(主要是为了把技巧放进博客) 保证一个月内不写代码超过100行的。[HNOI2015]接水果Description风见幽香非常喜欢玩一个叫做 osu!的游戏,其中她最喜欢玩的模式就是接水果。 由于她已经DT FC 了The big black, 她觉得这个游戏太简单了,于是发明了一个更 加难的版本。首先有一个地图,...原创 2018-06-12 21:58:36 · 838 阅读 · 1 评论 -
线段树分治概述
其实很好理解的一个算法:我们把所有操作放到一棵树里,然后像遍历树一样遍历整棵树。有点像把操作放到dfs树里然后做,回溯的时候把操作还原。然而这个算法不一样的是:一个操作可能会覆盖线段树的多个节点,如果一个操作横跨当前两个节点我们可能需要把它拆成两个操作。当然对于线段树熟悉的话,这并不是问题,一个操作最多被分成logloglog个。 我们模仿线段树,如果这个操作覆盖整个区间,就操作,否则看它是否横...原创 2018-06-14 21:14:33 · 4815 阅读 · 1 评论 -
[Hnoi2010]Bounce 弹飞绵羊(LC)
[Hnoi2010]Bounce 弹飞绵羊Description某天,Lostmonkey发明了一种超级弹力装置,为了在他的绵羊朋友面前显摆,他邀请小绵羊一起玩个游戏。游戏一开始,Lostmonkey在地上沿着一条直线摆上n个装置,每个装置设定初始弹力系数ki,当绵羊达到第i个装置时,它会往后弹ki步,达到第i+ki个装置,若不存在第i+ki个装置,则绵羊被弹飞。绵羊想知道当它从第i个装置起步...原创 2018-10-05 16:00:09 · 185 阅读 · 0 评论 -
LCT概述
LCT全称是link-cut-tree,从这个名字就可以看出这玩意儿的逼格很高。实际上确是是一个很强的数据结构。建议在学LCT之前可以先学习一下树链剖分,这里就不赘述了。那么LCT是一个什么东西呢?这个数据结构正如它的名字一样,他可以支持树的link和cut,专治各种毒瘤题 。其实LCT可以看做树链剖分的升级版,树链剖分只能解决静态树的根源是什么?是因为线段树这个东西就只能是静态的。而且就算...原创 2018-10-05 15:43:40 · 18740 阅读 · 1 评论 -
点分治概述
感觉分治是一种很奥妙的算法。学一万年都学不会的那种。点分治自然属于分治算法的一种,似乎会了点分治就分治入门了?目前为止点分治板题解决2类问题:1.树上满足条件的路径条数计数(带修)。2.树上路径有某种权值取max(带修)。点分治(或者分治)的思想是什么呢?枚举树上每一个点,处理经过它的路径。这里的处理可以看做由它出发的路径两两合并。为了满足复杂度并且不WA,之前计算过的路径不重复计...原创 2018-09-20 10:32:25 · 277 阅读 · 0 评论 -
1483:[HNOI2009]梦幻布丁(链表+启发式合并)
1483:[HNOI2009]梦幻布丁时间限制: 1000 ms 内存限制: 65536 KB 提交数: 2 通过数: 2 题目描述NNN个布丁摆成一行,进行MMM次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色.输入第一行给出NNN,MMM表示布丁的个数和好友的...原创 2018-09-13 20:35:15 · 208 阅读 · 0 评论 -
[POI2008]砖块Klo(set维护中位数)
[POI2008]砖块KloDescriptionNNN柱砖,希望有连续KKK柱的高度是一样的. 你可以选择以下两个动作 1:从某柱砖的顶端拿一块砖出来,丢掉不要了. 2:从仓库中拿出一块砖,放到另一柱.仓库无限大. 现在希望用最小次数的动作完成任务.Input第一行给出NNN,KKK.(1≤k≤n≤100000)(1≤k≤n≤100000)(1 ≤ k ≤ n ≤ 100...原创 2018-08-25 15:06:29 · 548 阅读 · 0 评论 -
2120: 数颜色(带修莫队)
2120: 数颜色Description墨墨购买了一套NNN支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会像你发布如下指令: 1、 QQQ LLL RRR代表询问你从第LLL支画笔到第RRR支画笔中共有几种不同颜色的画笔。 2、 RRR PPP Col 把第PPP支画笔替换为颜色Col。为了满足墨墨的要求,你知道你需要干什么了吗?Input第1行两个...原创 2020-09-09 21:55:18 · 334 阅读 · 1 评论 -
奇怪的堆——配对堆
先来看一道题: 3040: 最短路(road) 众所周知最短路的复杂度是(m+nlognm+nlognm+nlogn)的,但是我们平时的写法实际上是(m+mlogmm+mlogmm+mlogm)。这样的话我们需要引进一种新的堆:可以修改堆里的值。配对堆满足了我们的需求。 配对堆是一棵树,保证自己比祖先大,不满足二叉。操作:1.插入:比较插入和根,哪个大哪个在上面。 2.合并:同...原创 2018-08-15 13:00:39 · 1701 阅读 · 0 评论 -
[Hnoi2016]序列(莫队+st表)
4540: [Hnoi2016]序列Description 给定长度为nnn的序列:a1a1a_1,a2a2a_2,…,anana_n,记为a[1:n]a[1:n]a[1:n]。类似地,a[l:r]a[l:r]a[l:r](1≤l≤r≤N1≤l≤r≤N1≤l≤r≤N)是指序列:alala_l,al+1al+1a_{l+1},…,ar−1ar−1a_{r-1},arara_r。若1≤l...原创 2018-06-19 22:04:15 · 341 阅读 · 0 评论 -
bzoj3694:最短路(最短路树+并查集)
3694:最短路时间限制: 1000 ms 内存限制: 262144 KB题目描述给出一个nnn个点mmm条边的无向图,nnn个点的编号从1~nnn,定义源点为1。定义最短路树如下:从源点1经过边集TTT到任意一点i有且仅有一条路径,且这条路径是整个图1到iii的最短路径,边集TTT构成最短路树。 给出最短路树,求对于除了源点1外的每个点iii,求最短路,要求不经过给出...原创 2018-06-29 12:15:35 · 2291 阅读 · 1 评论 -
bzoj3693圆桌会议(二分图匹配hall定理+线段树)
3693:圆桌会议时间限制: 5000 ms 内存限制: 262144 KB题目描述有n组人要一起开一个圆桌会议(编号为0~n−1n−1n-1),会议的圆桌上有mmm个位置(编号为0~mmm-1)。每个组有aiaia_i个人,他们需要被安排在(lilil_i,(li+1)(li+1)(l_i+1)%m,(li+2)(li+2)(l_i+2)%m,…,ririr_i)的座位范围内。...原创 2018-06-29 10:55:08 · 509 阅读 · 0 评论 -
树状数组概述
一些懒人由于觉得线段树难写的一逼,于是发明了树状数组。于是大佬们拿它去卡常。啥树套树的你套个树状数组,常数就小了下来,就快了好几倍。苦逼写线段树的同学还过不去了。所以本着不卡别人也不被别人卡的思想,我们来学习一波树状数组。首先树状数组比线段树优秀的一点就是它的空间就小一半。我们只用开一个大小为n的数组,存的样子大概像这样:什么意思呢?看到这个树形结构了么?不好说明,举个例子:2号点...原创 2018-03-28 14:26:11 · 325 阅读 · 0 评论 -
平衡树概述
平衡树是排序二叉树的(SBT)的升级版。就是采取各种手段让排序二叉树变得更平衡,不然在数据极端的情况下,SBT退化成一条链,复杂度也退化成n2n2n^2了。总的来说,就是为了不被丧病出题人卡极端数据发明的算法。 \\ 我们直接把三种写法放在一起(可能会有点长,不过将就看吧)。平衡树——替罪羊树概述自从写了平衡树之后就整个人都不好了,我是个蒟蒻,打个200行的代码就不咋调得出来。...原创 2018-03-28 14:18:11 · 1801 阅读 · 0 评论 -
主席树概述
先不瞎说什么,直接上模板题:P3834 【模板】可持久化线段树 1(主席树)题目背景这是个非常经典的主席树入门题——静态区间第K小 数据已经过加强,请使用主席树。同时请注意常数优化题目描述如题,给定N个正整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。输入格式:第一行包含两个正整数N、MN、MN、M,分别表示序列的长度和查询的个数。 第二行包含NN...原创 2018-03-28 11:53:37 · 171 阅读 · 0 评论 -
可持久化概述
要打就打一道最版的题:P3919 【模板】可持久化数组(可持久化线段树/平衡树)可持久化是什么意思呢?就是说,对于我们某一个数据结构,我们要O(1)O(1)O(1)查询它的历史版本。大概就是反复横跳的意思。我们有几个想法:1.每次修改操作把它放进一个栈里,要查询历史版本就弹栈修改回去。但是这样只能查询上一个历史版本。对于某一个远古版本就巨难查询,可能复杂度爆表,单次nlognnlognnl...原创 2018-03-28 11:48:29 · 1159 阅读 · 0 评论 -
并查集概述
以前以为并查集是一个比较简单的东西,结果发现oi界啥都不简单。具体可以参见啥输入输出题。(输出自己的程序)。好了,我们来讲并查集:P1551 亲戚这是一道入门题,我们可以在有亲戚关系的两个人之间连一条边,然后查询可以从一个人出发看能否走到另一个人。这样我们就得到了一个O(mn)O(mn)O(mn)的算法。这一道题我们就能过了。但是并查集有什么卵用咧,其实并查集就是优化这种做法:对于每一...原创 2018-03-28 11:46:32 · 432 阅读 · 0 评论 -
堆的常见模型
虽然说是常见模型,但是这里只有一种模型,表示比较弱,只会一种模型。先来一道超简单的例题:P1631 序列合并 亲测,输入数据按从小到大排列(不要问我是怎么知道的)亲测,输入数据按从小到大排列(不要问我是怎么知道的)\color{red}{亲测,输入数据按从小到大排列(不要问我是怎么知道的)}要把所有和的值都拿来放进堆里绝对超时了(On都过不了),这种时候堆就起到了它的作用。因为我们发现我...原创 2018-03-27 08:41:28 · 457 阅读 · 0 评论 -
[bzoj4293]_[PA2015]Siano(线段树+二分)
4293: [PA2015]SianoTime Limit: 30 Sec Memory Limit: 256 MB Submit: 581 Solved: 199 [Submit][Status][Discuss]Description农夫ByteasarByteasarByteasar买了一片nnn亩的土地,他要在这上面种草。 他在每一亩土地上都种植了一种独一无二的草...原创 2018-03-27 08:04:17 · 304 阅读 · 0 评论 -
单调栈&单调队列概述
这俩货好像有那么点关系,就把它们一起讲了。首先讲一讲单调栈,这个玩意儿似乎没有什么板子,但是这一类题目看懂了其实都比较板。还是日常先来看一道题:音乐会的等待题目描述N个人正在排队进入一个音乐会。人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人。队列中任意两个人AAA和BBB,如果他们是相邻或他们之间没有人比AAA或BBB高,那么他们是可以互相看得见的。写一个程序计算出...原创 2018-03-26 16:48:56 · 226 阅读 · 0 评论 -
[SCOI2007]降雨量(st表)
题目描述我们常常会说这样的话:“X年是自Y年以来降雨量最多的”。它的含义是X年的降雨量不超过Y年,且对于任意Y<<<<nnn,为已知的数据。以下nnn行每行两个整数yiyiy_i和ririr_i,为年份和降雨量,按照年份从小到大排列,即yi<yi+1yi<yi+1y_immm,为询问的次数。以下mmm行每行包含两个数Y和X,即询问“X年是自Y年以来降雨量最多...原创 2018-03-29 19:29:22 · 558 阅读 · 0 评论 -
线段树概述
什么题可以使用线段树呢?线段树要满足一下几个性质:1.操作可合并2.查询可合并3.可以在很短的时间合并操作线段树没啥可说的,就直接贴份代码算了(区间修改,区间查询)#include<iostream> #include<cstdio> #include<cstring> #include<string> #in...原创 2018-03-29 19:17:29 · 236 阅读 · 0 评论 -
小白逛公园 - Vijos(线段树+一点dp)
描述小新经常陪小白去公园玩,也就是所谓的遛狗啦…在小新家附近有一条“公园路”,路的一边从南到北依次排着nnn个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了。一开始,小白就根据公园的风景给每个公园打了分-.-。小新为了省事,每次遛狗的时候都会事先规定一个范围,小白只可以选择第aaa个和第bbb个公园之间(包括aaa、bbb两个公园)选择连续的一些公园玩。小白当然希望选出的公园的分数总...原创 2018-03-29 19:15:47 · 411 阅读 · 0 评论