![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
二货RK
菜鸡一枚
展开
-
后缀数组
后缀数组后缀数组的几个数组变量:sa[i]–>排名为i的后缀的起始位置的下标sa[i]的映射数组rank[i]就表示起始位置的下标为i的后缀的排名以上两个数组在意义上是相互对应的 首先我们有如下定义:1、后缀i和后缀j的前2k个下个等<=>”后缀i和后缀j的前k个相等 ”和 “后缀i+k和后缀j+k的前k个相等2、(后缀i的前k个字符小于后缀j的前k个字符)或(后...原创 2019-07-05 15:06:23 · 99 阅读 · 0 评论 -
POJ1785(笛卡尔树中序遍历)
POJ1785 (笛卡尔树的中序遍历)这是接着我之前写的笛卡尔树来的,有兴趣的话可以看看哈,传送门https://blog.csdn.net/qq_33437973/article/details/97619600这道题一开始没怎么懂,后来发现括号就是每个节点进行遍历开始的时候和结束的时候分别括上就行了,然后就是一个裸的笛卡尔树,MD还想了那么久!!!!题目:http://poj.org/p...原创 2019-07-28 21:28:00 · 407 阅读 · 0 评论 -
ST表 洛谷 P3865 ST表模板题
ST表 洛谷 P3865 ST表模板题首先,来说说为什么学ST表哈。ST表类似于树状数组和线段树这两种数据结构在解决RMQ问题时,ST表和线段树的预处理时间复杂度都是O(nlogn),两者的不同在于,在查询RMQ答案时,ST表的时间复杂度为O(1),而线段树却有 O (logn),这是ST表的优势就完全体现出来了。ST表实际上是一个二维数组 ST[i] [j],含义是:从下标i 到下标 i...原创 2019-08-18 21:04:53 · 301 阅读 · 0 评论 -
主席树介绍 : 洛谷P3834 可持久化线段树 1(主席树)
主席树介绍 : 洛谷P3834 可持久化线段树 1(主席树)昨天开始进入主席树的学习。。首先,主席树也是线段树的一种,但是空间比线段树更大,这是因为,他记录了每一次修改之前的状态,也就是说,他比一般的线段树有更多的节点,一开始看到有题解说,每一个节点都存了一个线段树,这把我吓了一跳,其实准确来说,应该不是这样的,下面看我讲解:主席树,是在权值线段树上发展来的,对于每一个 L == R 的节...原创 2019-08-24 20:07:11 · 131 阅读 · 0 评论 -
HDU6534 权值树状数组+莫队 Chika and Friendly Pairs
HDU6534 权值树状数组+莫队 Chika and Friendly Pairs嘛,写完这道题后最莫队和树状数组的理解更进了一步嘛,有关莫队的知识,请参考我的另一篇博客,莫队基本上写完一两道模板题后就基本理解了,很简单的这次学到了一个很实用的STL 函数 unique函数,对于权值离散化非常有用,在对一个数组排完序以后,unique函数能够将相邻的重复元素,变成一个元素,将多余的元素放在...原创 2019-08-20 21:30:17 · 157 阅读 · 0 评论 -
牛客练习题 AC自动机 String (强制 离线AC自动机)
牛客练习题 AC自动机 String (强制 离线AC自动机)嘛,这题TLE了我一下午,最终在晚上终于搞出来了!!!基本思想是AC自动机,但由于题目是询问中穿插了字符串的添加,所以我们不得不将其离线(因为每次添加都需要更新fail指针,这样时间复杂度太大了),然后倒序处理询问,对之前添加进去的一一删去,得出答案后即可输出。开始的时候就是普通树状数组的操作,我交的代码TLE是因为我没有做求单词...原创 2019-08-25 22:34:30 · 245 阅读 · 0 评论 -
NAIPC 2018 Prefix Free Code
NAIPC 2018 Prefix Free Code这是我和左学长精诚合作弄出的一道题(虽然我的代码后面到处有坑)字典树+dfs序(字典序大小)+树妆数组+阶乘计算答案因为保证每一个字符串都不是其他串的前缀,那么在字典树上,每一条支链的结尾有且仅代表一个串,也就是说保证扫到串的末尾时,不会有其他串在这条链上。然后用一个 tpos[ ] 数组记录当前这个字典树的节点所代表的是输入的第几个串...原创 2019-08-16 15:56:46 · 190 阅读 · 0 评论 -
C++ STL set的使用
C++ STL set的使用今天写一道贪心题,被禧宝儿嘲讽了:“亲,这边建议您学一下set”于是就来补坑了,毕竟学这些STL,以后在数据处理方面会用很大作用首先附上另一个大佬的blog:https://blog.csdn.net/Strawberry_595/article/details/81188509set 是一个关联性容器,其他关联性的容器,像multiset, map, mult...原创 2019-08-22 21:54:07 · 324 阅读 · 0 评论 -
带修改主席树 洛谷P2617 Dynamic Rankings
带修改主席树 洛谷P2617 Dynamic Rankings题目大意:这道题依然是求区间第k大,但是这是求动态区间第k大的值,数组里的值可以随意修改。输入:第一行有两个正整数n(1≤n≤100000),m(1≤m≤100000)。分别表示序列的长度和指令的个数。第二行有n个数,表示a[1],a[2]……a[n],这些数都小于10^9。接下来的m行描述每条指令,每行的格式是下面两种格式...原创 2019-08-27 19:52:52 · 147 阅读 · 0 评论 -
笛卡尔树 poj2201
笛卡尔树在左学长的督促下,我开始了学习笛卡尔树的旅途(挖坑)。。。笛卡尔树是一种非常神奇的树,他的每一个节点都有两个关键字key和val,首先其基本结构是一颗二叉搜索树,即对于每一个节点,其左子树的key值都应该比其小,右子树则大,满足这些条件的同时,他的val值在这颗树上又有大小根堆的性质(优先队列),这就是笛卡尔树的基本性质。那么,笛卡尔树能干些啥呢? 1、笛卡尔树可以有效地处理范...原创 2019-07-28 21:13:15 · 181 阅读 · 0 评论 -
牛客数据结构单调栈训练题 Bad Hair Day
牛客数据结构单调栈训练题 Bad Hair Day嘛,这是一道之前在比赛的时候和左学长研究过的题,多亏了左学长,现在这题能秒出。解题方法是这样的:每次在栈里放入一个高度,但放入之前,需要保证栈里面的元素是单调的,就相当于对于每一个比当前高度高的牛都做了贡献,每次答案加上单调栈里面的元素个数即可,很简单上代码:#include <bits/stdc++.h>using nam...原创 2019-08-06 08:55:57 · 172 阅读 · 0 评论 -
2019牛客假日团队赛5_A_Bad Hair Day(单调栈)
首先来叙述下我的弱小,把这道题看完之后,第一个反应是——水题。。。然后蒟蒻脑子就是一片空白。。。。。MD,连水题都不会做,我太菜了,那么先上题https://ac.nowcoder.com/acm/contest/984/A题目大意:给你一排数列,求从每一位开始一直到比大于等于它的那一位数结束,其中有a[i]位,求所有a[i]之和。例如:给你一个数列 10 3 7 4 12 2从10...原创 2019-07-06 23:50:37 · 88 阅读 · 0 评论 -
牛客练习赛49_D_筱玛爱线段树
今天,厚颜无耻的说勉强是自己一个人写出的题吧,其实要是没有左学长的提醒,我估计会在线段树上转一上午。先上题面:https://ac.nowcoder.com/acm/contest/946/D大意:给你n个数的数组和m个操作,数组的初始值全部为0,操作的种类只有2种,一种是将数组[l,r]中的数全部加上1,另一种是将操作编号为[l,r]的操作再全部进行一遍。求m次操作后的数组的模样。首先,看...原创 2019-07-07 00:10:00 · 124 阅读 · 0 评论 -
lower_bound()和upper_bound()在数组中的使用(非迭代器版)
lower_bound()和upper_bound()在数组组中的使用(非迭代器版)我们在写二分的时候经常会被边界值搞得晕头转向,l到底等于多少,r到底等于多少好想找个办法规避下这些东西啊于是,我们将lower_bound和upper_bound()放了出来这两个玩意的运用,在很多blog上都是用于迭代器的,但是其实他在数组中也能够运用,下面我们就来看看,这两个玩意的含义是什么吧!设我们...原创 2019-07-07 07:39:18 · 1866 阅读 · 1 评论 -
牛客数据结构队列训练题 蚯蚓
牛客数据结构队列训练题 蚯蚓啊啊啊,好怀念,2016年的NOIP的试题,欸,当时我还是个小白,现在也是菜鸡,这道用三个队列即可完成首先,我们来分析下对于每对 x1,x2(x1>x2) 他们被剪断后的操作1、对于每一对x1,x2(x1>x2): p1=x1p , p2=x1-x1p; p3=x2p , p4=x2-x2p; 明显p1>=p3,p2>=p4...原创 2019-08-02 23:03:36 · 138 阅读 · 0 评论 -
牛客数据结构优先队列训练题 操作系统
牛客数据结构优先队列训练题 操作系统啊啊,明明一道极其简单的训练题,我想得太复杂了!!!!不说了直接上代码,就是模拟没什么好说的#include <bits/stdc++.h>using namespace std;int a,b,c,d,lastend=0;struct pro{ int id=0,at=0,ti=0,pri=0; bool operato...原创 2019-08-02 23:18:05 · 161 阅读 · 0 评论 -
线段树增强训练题 ZOJ1610 Count the Colors
线段树增强训练题 ZOJ1610 Count the Colors线段树增强训练,啊啊啊,我还是太菜了这道题调试起码4个小时,明明一道很简单的题目。。。。题意也看了好久,与一开始还读错题意了,但是问题不大,在原来的代码上改改也可题意:对一段长为8000的线段进行染色,颜色有8000种,每次对区间[l,r]进行染色,进行n次操作后,问你每一种颜色有几段。很明显的区间修改和查询,不假思索就...原创 2019-07-30 22:10:07 · 137 阅读 · 0 评论 -
Splay 模板 洛谷P3369 普通平衡树
Splay 模板 洛谷P3369 普通平衡树什么也不说上代码这代码我也不求人看懂,操作原理有点复杂,不是很想讲,以后再来填坑吧!#include <bits/stdc++.h>using namespace std;const int maxn=1000000;class Splay{ private: int ch[maxn][2],f[maxn]...原创 2019-07-30 22:39:36 · 163 阅读 · 0 评论 -
牛客优先队列训练题 NOIP2018 道路铺设
牛客优先队列训练题 NOIP2018 道路铺设虽然在牛客上分类是优先队列,但实际操作起来其实就只是一道纯贪心的题目,有点单调队列的感觉,每次找后面大于前面的,并加上后面的差值,O(n) 的时间复杂度就可过,不需要用到优先队列上代码:#include <bits/stdc++.h>using namespace std;const int maxn=1e6+7;int n,a...原创 2019-08-06 08:43:06 · 228 阅读 · 0 评论 -
数据结构 单向链表 C++ 非Class实现
数据结构 单向链表 C++ 非Class实现昨天上了数据结构的课程,虽然说上个学期也上了链表(但我没认真听),而且我觉得用Class实现简单链表太麻烦了,所以直接用struct实现了一下上代码:#include <bits/stdc++.h>using namespace std;int n,m,x;struct Link{ int data; Link *...原创 2019-09-19 20:25:47 · 189 阅读 · 1 评论