数据结构
文章平均质量分 75
Mychael
蒟蒻一枚QAQ
展开
-
AC自动机【萌新文章】
我这个蒟蒻第一次写博客,有点小激动呢。主要是最近刚学了AC自动机,学得糟糟糕糕,记录一下,看到dalao们都在写博客,决定自己也写一波【我好水的啦,写的也不好】AC自动机大概就是 Trie+KMP=AC自动机嗯,在KMP中,引入了字符串失配最优转移方案:失配函数f[i],在j位匹配失败后,便转到f[j]位匹配同样的道理,AC自动机就是升维的KMP,在匹配时不仅要考虑当前模板串原创 2017-06-24 11:08:33 · 197 阅读 · 0 评论 -
POJ3623 Best Cow Line, Gold 【后缀数组】
最好的牛线,金时间限制: 5000MS 内存限制: 65536K提交总数: 5917 接受: 2048描述FJ即将把他的ñ(1≤ ñ ≤30,000)头牛竞争一年一度的“年度农民”。在这个比赛中,每个农民都把他的牛排成一行,并把他们放在法官面前。比赛组织者今年通过了一个新的注册方案:只要按照他们将要出现的顺序(即,原创 2017-12-14 09:14:04 · 257 阅读 · 0 评论 -
POJ3450 Corporate Identity 【后缀数组】
Corporate IdentityTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 7662 Accepted: 2644DescriptionBeside other services, ACM helps companies to clearly原创 2017-12-14 13:42:13 · 272 阅读 · 0 评论 -
BZOJ2761 不重复的数字 【treap】
2761: [JLOI2011]不重复数字Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 5517 Solved: 2087[Submit][Status][Discuss]Description给出N个数,要求把其中重复的去掉,只保留第一次出现的数。例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2原创 2017-11-27 13:16:38 · 165 阅读 · 0 评论 -
BZOJ3673 & BZOJ3674 可持续化并查集 【可持续化线段树维护可持续化数组】
3673: 可持久化并查集 by zkyTime Limit: 5 Sec Memory Limit: 128 MBSubmit: 3084 Solved: 1387[Submit][Status][Discuss]Descriptionn个集合 m个操作操作:1 a b 合并a,b所在集合2 k 回到第k次操作之后的状态(查询算作操作)3 a b 询问a,b是否属于同一集合,是则原创 2017-12-23 19:09:09 · 291 阅读 · 0 评论 -
BZOJ3132 上帝造题的七分钟 【二维树状数组】
题目“第一分钟,X说,要有矩阵,于是便有了一个里面写满了0的n×m矩阵。第二分钟,L说,要能修改,于是便有了将左上角为(a,b),右下角为(c,d)的一个矩形区域内的全部数字加上一个值的操作。第三分钟,k说,要能查询,于是便有了求给定矩形区域内的全部数字和的操作。第四分钟,彩虹喵说,要基于二叉树的数据结构,于是便有了数据范围。第五分钟,和雪说,要有耐心,于是便有了时间限制。第六分钟,吃钢琴男说,要省原创 2017-12-24 09:32:02 · 366 阅读 · 0 评论 -
BZOJ3211 花神游历各国 【树状数组 + 并查集】
题目输入格式输出格式每次x=1时,每行一个整数,表示这次旅行的开心度输入样例41 100 5 551 1 22 1 21 1 22 2 31 1 4输出样例1011111数据对于100%的数据, n ≤ 100000,m≤200000 ,data[i]非负且小于10^9题解类似于重复开根以及取模之类的操作都有个共性,就是重复取的次数非常少 以本题开根为例,当取到一定次数时,就会变为1 我们用树状原创 2017-12-24 10:27:02 · 203 阅读 · 0 评论 -
BZOJ1452 [JSOI2009]Count 【树套树 (树状数组)】
1452: [JSOI2009]CountTime Limit: 10 Sec Memory Limit: 64 MBSubmit: 2693 Solved: 1574[Submit][Status][Discuss]DescriptionInputOutputSample InputSample Output原创 2017-12-15 14:06:48 · 230 阅读 · 0 评论 -
BZOJ1507 [NOI2003]Editor 【splay】
1507: [NOI2003]EditorTime Limit: 5 Sec Memory Limit: 162 MBSubmit: 4129 Solved: 1660[Submit][Status][Discuss]DescriptionInput输入文件editor.in的第一行是指令条数t,以下是需要执行的t个操作。其中: 为了使输入文件便于阅读,原创 2017-12-07 17:04:11 · 199 阅读 · 0 评论 -
BZOJ1180 [CROATIAN2009]OTOCI 【LCT】
题目给出n个结点以及每个点初始时对应的权值wi。起始时点与点之间没有连边。有3类操作: 1、bridge A B:询问结点A与结点B是否连通。如果是则输出“no”。否则输出“yes”,并且在结点A和结点B之间连一条无向边。 2、penguins A X:将结点A对应的权值wA修改为X。 3、excursion A B:如果结点A和结点B不连通,则输出“impossible”。否则输出结点A到结点B的原创 2018-01-02 14:17:41 · 216 阅读 · 0 评论 -
BZOJ2957 楼房重建 【线段树】
题目 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没有与原创 2018-01-11 17:45:14 · 204 阅读 · 0 评论 -
BZOJ2157 旅游 【树剖 或 LCT】
题目Ray 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − 1 座桥。Ray 发现,有些桥上可以看到美丽的景色,让人心情愉悦,但有些桥狭窄泥泞,令人烦躁。于是,他给每座桥定义一个愉悦度w,也就是说,Ray 经过这座桥会增加w 的愉悦原创 2018-01-02 18:45:36 · 250 阅读 · 0 评论 -
BZOJ2743 [HEOI2012]采花 【离线 + 树状数组】
题目萧芸斓是Z国的公主,平时的一大爱好是采花。 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花。花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于公主采花。公主每次采花后会统计采到的花的颜色数,颜色数越多她会越高兴!同时,她有一癖好,她不允许最后自己采到的花中,某一颜色的花只有一朵。为此,公主每采一朵花,要么此前已采到此颜色的花,要么有相当正确的直觉告原创 2018-01-04 13:02:49 · 198 阅读 · 0 评论 -
Link cut tree学习笔记
在阳光明媚的午后,本蒟蒻在BZOJ刷题,偶遇人生中第一题Link cut tree——弹飞绵羊决心攻下这道题,翻阅无数博客,发现这是一个极其恐怖的数据结构= =啊啊啊看是看懂这是什么玩意了,怎么实现呐QAQ。。。。。。。。。。——————————————————Link cut tree从名字中可以看出,这是一棵可以link和cut的树,也就是一棵动态树,准确来说是原创 2017-10-02 17:31:57 · 174 阅读 · 0 评论 -
POJ3415 Common Substrings 【后缀数组 + 单调栈】
常见的子串时间限制: 5000MS 内存限制: 65536K提交总数: 11942 接受: 4051描述字符串T的子字符串被定义为:Ť(我,ķ)= Ť 我 Ť 我 1 ... Ť I + K -1,1≤ 我 ≤ I + K -1≤| T |。给定两个字符串A,B和一个整数K,我们定义S,一组三元组(原创 2017-12-13 17:28:38 · 217 阅读 · 0 评论 -
BZOJ2733 永无乡 【splay启发式合并】
2733: [HNOI2012]永无乡Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 4190 Solved: 2226[Submit][Status][Discuss]Description永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可 以将这 n 座岛排名,名次用 1 到 n 来原创 2017-11-25 13:30:58 · 204 阅读 · 0 评论 -
POJ3294 Life Forms 【后缀数组】
生命形式时间限制: 5000MS 内存限制: 65536K提交总数: 16660 接受: 4910描述你可能想知道为什么大多数外星人的生命形式与人类相似,不同的是表面特征,如身高,肤色,皱纹,耳朵,眉毛等等。有几个没有人类的相似之处; 这些通常具有几何形状或无定形形状,如立方体,浮油或灰尘云。“ 星际迷航 ”第14原创 2017-12-13 12:03:35 · 216 阅读 · 0 评论 -
splay tree 学习笔记
首先感谢litble的精彩讲解,原文博客:litble的小天地在学完二叉平衡树后,发现这是只是一个不稳定的垃圾玩意,真正实用的应有Treap、AVL、Splay这样的查找树。于是最近刚学了学了点Splay。一般地【一般地】,Splay有一下操作:insert 插入find 查找del 删除pre 查找前驱post原创 2017-07-13 19:00:07 · 260 阅读 · 0 评论 -
Splay 的区间操作
学完Splay的查找作用,发现和普通的二叉查找树没什么区别,只是用了splay操作节省了时间开支。而Splay序列之王的称号可不是白给的。Splay真正强大的地方是他的区间操作。怎么实现呢?我们知道查找树的中序遍历是一个有序的序列。这个时候我们打破查找树左小右大的规则,而是把他的中序遍历作为我们的区间进行维护。具体来讲有以下操作:1、建树2、区间操作【翻转、赋值原创 2017-07-20 14:40:29 · 1929 阅读 · 0 评论 -
主席树入门学习
总是听到主席树这个高大上的名字,仰慕已久,今天开始简单地学习主席树是一种可持续化数据结构,这个名字与算法本身并无太大关联,听说是以创造者命名的。主席树,简单来讲,其实就是线段树。一堆的线段树,而且每一个只由前一个修改而来。什么意思?我们来看个例子你有一个区间{1,3,8,7,6,7,2} 【我滚出来的】然后你以这个区间建了一个线段树,每个节点维护区间原创 2017-07-20 22:20:27 · 373 阅读 · 0 评论 -
HDU-3974 Assign the task题解报告【dfs序+线段树】
There is a company that has N employees(numbered from 1 to N),every employee in the company has a immediate boss (except for the leader of whole company).If you are the immediate boss of someone,that原创 2017-07-26 20:58:02 · 438 阅读 · 0 评论 -
可并堆(左偏树)简单学习
通常我们使用的二叉堆,是用一个数组实现的完全二叉树,对于查询有O(1)复杂度,对于插入、删除有O(logn)复杂度而且常数比较小,是一个比较优秀的数据结构但是。当我们需要合并两个堆的时候,用普通的二叉堆就显得吃力了,时间复杂度达到log(n+m)这个时候可并堆这种数据结构就出现了。而在其中,尤以左偏树代码复杂度和时间复杂度综合得比较优秀左偏树在介绍左偏树之前原创 2017-08-17 12:11:00 · 322 阅读 · 0 评论 -
树链剖分原理与应用
树链剖分这个算法我看了好多大神们的博客,才慢慢领悟,希望我写的过得去( · · )众所周知,维护区间信息的题目可以用线段树高效实现。类似于区间这样一维的结构,在树上维护两点间的信息【比如树上两点之间的最大值】也可以用线段树吗?仔细想想,好像很难实现。因为线段树维护的是链状结构,而树是一张图。但我们想想,如果能把一棵树化为一条链,使得要节点间编号是一段一段的【也就是有些节点间的原创 2017-08-13 23:38:03 · 295 阅读 · 0 评论 -
差分数组
考虑这样一道题:有一个数列,每次修改区间[Li,Ri],在所有修改操作结束后询问每个单点的值这不是裸的线段树么。。。没必要,真的没必要。。你想想线段树多少代码打着烦不烦呐。。我们定义这样一个数组D[i]=A[i]-A[i-1],叫做差分数组我们令sumD[i]为D[i]的前缀和,则sumD[i]=A[1]-A[0]+A[2]-A[1]+A[3]-A[2]+.原创 2017-08-23 18:33:12 · 720 阅读 · 0 评论 -
后缀数组学习笔记
【吐槽】学了好久的后缀数组,看了各个大神博客,还是没懂= =,看起来好难的一个东西【一堆堆for】。主要还是自己码代码的能力太弱了。。。。后缀数组,顾名思义,一定与后缀有关。后缀数组简称sa,sa[i]表示在字符串s的所有后缀中,排名第i的后缀的首字母在字符串中的位置。【排名从0开始】比如,对于字符串"ababa",排名第一的后缀是最后一个a,那么sa[0]=4.我们要原创 2017-08-02 17:13:57 · 223 阅读 · 0 评论 -
BZOJ2588 Count on a tree 【树上主席树】
2588: Spoj 10628. Count on a treeTime Limit: 12 Sec Memory Limit: 128 MBSubmit: 7577 Solved: 1852[Submit][Status][Discuss]Description给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和原创 2017-12-03 08:39:18 · 212 阅读 · 0 评论 -
POJ3261 Milk Patterns 【后缀数组】
牛奶模式时间限制: 5000MS 内存限制: 65536K提交总数: 16796 接受: 7422案件时间限制: 2000MS描述农夫约翰已经注意到,他的牛奶的质量每天都在变化。经进一步调查,他发现虽然不能预测一天到下一天的牛奶质量,但每天的牛奶质量有一些规律。要执行严格的研究,他已经发明了其中每个奶样原创 2017-12-11 19:07:30 · 210 阅读 · 0 评论 -
POJ2406 Power Strings 【KMP 或 后缀数组】
电源串时间限制: 3000MS 内存限制: 65536K提交总数: 53037 接受: 22108描述给定两个字符串a和b,我们定义a * b是它们的连接。例如,如果a =“abc”和b =“def”,那么a * b =“abcdef”。如果我们将连接看作是乘法,则用正常的方式定义非负整数的指数:a ^ 0 =“”原创 2017-12-11 20:01:16 · 237 阅读 · 0 评论 -
BZOJ1269 [AHOI2006]文本编辑器editor 【82行splay】
1269: [AHOI2006]文本编辑器editorTime Limit: 10 Sec Memory Limit: 162 MBSubmit: 4633 Solved: 1782[Submit][Status][Discuss]Description这些日子,可可不和卡卡一起玩了,原来可可正废寝忘食的想做一个简单而高效的文本编辑器。你能帮助他吗?为了明确任务目标,可原创 2017-12-03 13:58:44 · 251 阅读 · 0 评论 -
POJ2774 Long Long Message 【后缀数组lcp】
长长的消息时间限制: 4000MS 内存限制: 131072K提交总数: 32393 接受: 13079案件时间限制: 1000MS描述小猫在拜特兰的首府物理专业。最近有一个不幸的消息传来,他的母亲生病了。担心在火车票上花费太多(拜特兰是一个如此大的国家,他不得不在火车上花费16个小时到家乡),他决定只和母原创 2017-12-12 13:23:01 · 246 阅读 · 0 评论 -
BZOJ2631 tree 【LCT】
题目 一棵n个点的树,每个点的初始权值为1。对于这棵树有q个操作,每个操作为以下四种操作之一: + u v c:将u到v的路径上的点的权值都加上自然数c; - u1 v1 u2 v2:将树中原有的边(u1,v1)删除,加入一条新边(u2,v2),保证操作完之后仍然是一棵树; * u v c:将u到v的路径上的点的权值都乘上自然数c; / u v:询问u到v的路径上的点的权值和,求出答案对于5原创 2017-12-29 13:49:53 · 232 阅读 · 0 评论