
数据结构
KonnyWen
江郎才尽,回天乏术。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
哈夫曼树&编码
哈夫曼树&编码 前置芝士:无。 参考资料 https://blog.youkuaiyun.com/qq_29519041/article/details/81428934 跳转按钮 讲解构造\color{#8c4}\texttt{讲解构造}讲解构造 经典例题\color{#8af}\texttt{经典例题}经典例题 讲解构造\color{#000}\texttt{讲解构造}讲解构造 ...原创 2020-03-03 21:35:30 · 421 阅读 · 0 评论 -
平衡树-Splaytree
平衡树-Splaytree 前置知识:压行,二叉搜索树。 参考资料 https://blog.youkuaiyun.com/ModestCoder_/article/details/90139481 https://baike.baidu.com/item/%E5%B9%B3%E8%A1%A1%E6%A0%91/7641279?fr=aladdin Introduction\texttt{Introdu...原创 2020-02-28 22:16:19 · 552 阅读 · 1 评论 -
bitset的使用
STL-bitset bitset<>\texttt{bitset<>}bitset<> 就像是一个多功能的 bool\texttt{bool}bool 数组,它的大小极限是 520000000520000000520000000,在有些编译器下比 bool\texttt{bool}bool 数组大。 bitset<N> f; //建一个大小为N的b...原创 2020-02-15 08:58:58 · 288 阅读 · 0 评论 -
数据结构-ST表
数据结构-ST表 不可修改,在线查询的 RMQ 问题。 其中 f[i][j]f[i][j]f[i][j] 表示 i∼i+(1<<j)−1i\sim i+(1<<j)-1i∼i+(1<<j)−1 这段的 RMQ 值。 时间复杂度 O(nlogn)O(n\log n)O(nlogn) #include <bits/stdc++.h> using nam...原创 2020-02-08 09:46:00 · 339 阅读 · 0 评论 -
数据结构-堆
数据结构-堆 堆可以用来解决动态区间查询最值问题。 堆就是一个完全二叉树,可以插入节点,删除根节点(也可以删除特定节点)。 为了方便,普通的堆节点 iii 的父亲就是 [i÷2][i\div2][i÷2] ([x][x][x] 表示不超过 xxx 的最大整数)。 节点 iii 的左儿子是 i×2i\times2i×2,右儿子是 i×2+1i\times2+1i×2+1。 对于一个大顶堆: 每次插入...原创 2020-02-08 10:49:16 · 357 阅读 · 2 评论 -
数据结构-字符串-字典树
数据结构-字符串-字典树 字典树就是著名的 trietrietrie 树,是未来学很多字符串自动机的必备前置知识。 用处:插入字符串,查找字符串出现次数。 这个数据结构就是一个有根树,根节点编号为 111。除了根节点外,每个节点上有一个字母。对于每个节点 xxx,ch[x][c]ch[x][c]ch[x][c] 表示这个节点的儿子中字符为 ccc 的那个的编号,mk[x]mk[x]mk[x] 表示...原创 2020-02-08 11:31:53 · 477 阅读 · 0 评论 -
数据结构-树状数组
数据结构-树状数组 树状数组是较堆功能更强大的 RMQ 数据结构。 数组数组的前置知识:位运算。 数组数组的功能:单点修改区间查询,区间修改单点查询(用差分)。 首先讲 lowbit(x)lowbit(x)lowbit(x),这是个位运算知识。表示 xxx 二进制下为 111 的最高位,如 lowbit((1110010)2)=(10)2lowbit((1110010)_2)=(10)_2lowb...原创 2020-02-08 12:55:25 · 555 阅读 · 0 评论 -
数据结构-线段树①
数据结构-线段树 线段树是所有 RMQ 数据结构中最常用的。 功能:区间修改区间查询。不止最值、求和。只要可递推的值都可以构造线段树。 如果区间大小为 nnn,线段树有 cntcntcnt 个节点,那么 2n−1≤cnt<4n2n-1\le cnt<4n2n−1≤cnt<4n。 节点 对于每个节点 xxx,和堆类似,父亲节点为 x>>1x>>1x>&...原创 2020-02-08 14:27:22 · 440 阅读 · 1 评论 -
数据结构-字符串-AC自动机
数据结构-字符串-AC自动机 作用:单文本串多模式串匹配。 前缀知识:trie树\color{orange}\texttt{trie树}trie树。 AC自动机可以看作是在字典树上做 KMP,但并不是把 KMP 算法放到树上来,而是用了一种和 KMP 类似的思想,即在字典树上匹配文本串的时候如果失配,就跳到 failfailfail 指针所指的节点,所以学AC自动机没必要精通 KMP。 拿例题来讲...原创 2020-02-08 21:45:58 · 888 阅读 · 2 评论 -
字符串-KMP
字符串-KMP 作用:在一个文本字符串中找模式字符串出现次数、位置。 前缀知识:字符串\color{#60d000}\texttt{字符串}字符串。 算法名字来源:发明人 Knuth(D.E.Knuth)&Morris(J.H.Morris)&Pratt(V.R.Pratt)\texttt{Knuth(D.E.Knuth)\&Morris(J.H.Morris)\&...原创 2020-02-12 20:39:24 · 463 阅读 · 0 评论 -
数据结构-并查集
数据结构-并查集 非常基础简单有用的数据结构,可以合并两个集合、查询两个数是否在同一个集合,时间复杂度较玄学。 讲解: 在并查集中每个集合中的点之间的结构像一棵树,数组 f[]f[]f[] 表示一个节点的上司(父亲节点),如果 f[x]==xf[x]==xf[x]==x 表示 xxx 是自己集合中的老板(根节点)。刚开始时每个人是一个集合,所以 f[x]=xf[x]=xf[x]=x。 void f...原创 2020-02-14 19:29:11 · 252 阅读 · 1 评论