Loading

摘要: 0. 前言 前置知识:二叉查找树(BST)。 我们知道,BST 是会被恶意数据卡成$O(n^2)$的。(如下图) 树变成了一条链,这很显然不是我们想要的,我们需要找到一种方法来让 BST 保持平衡。 于是我们就有了各式各样的平衡树,而在 OI 中应用最为广泛的就是 Splay 和 fhq_treap 阅读全文
posted @ 2021-07-12 21:50 pjykk 阅读(181) 评论(0) 推荐(0)
摘要: (水) 一般来说,我们使用BKDRhash还进行字符串的哈希操作。 具体地,我们将字符串看成一个大进制数,然后取模就行了。 code: int hash(string s) { int ans=0,l=s.length(); for(int i=0;i<l;i++)ans=(ans*base%mod 阅读全文
posted @ 2021-07-12 15:48 pjykk 阅读(60) 评论(0) 推荐(0)
摘要: 树上的许多问题都可以用dfs序+线段树予以解决。 轻重链剖分是通过优化dfs的顺序,达到优化时间复杂度的目的。 它可以$O(n\log^2n)$支持链上加,链上和还有$O(n\log n)$LCA,子树加,子树和。 前置知识:dfs序,树形dp,线段树,没了。 首先给出一些定义: 重儿子:子树大小最 阅读全文
posted @ 2021-07-12 12:42 pjykk 阅读(133) 评论(0) 推荐(0)
摘要: UVA11987(vjudge) 并查集神题。也是在这里头一次听说了并查集的删除操作。 题目大意: 要求支持3个操作: 合并$x,y$所在集合; 将$x$移到$y$所在集合; 查询$x$所在集合中元素的个数和元素的和。 如果只有1、3操作,那么这道题就是一道简单的并查集。 现在有了2操作,那么就需要 阅读全文
posted @ 2021-07-11 23:54 pjykk 阅读(129) 评论(0) 推荐(0)
摘要: ## 1.图的存储与遍历 ```cpp //链式前向星存储 int cnt,h[maxn]; struct edge{int to,nxt,val;}e[maxm]; void addedge(int u,int v,int val) { e[++cnt]=(edge){v,h[u],val}; h 阅读全文
posted @ 2021-07-11 23:06 pjykk 阅读(52) 评论(0) 推荐(0)
摘要: 字符串算法都好抽象啊…… 1. 字符串哈希 int hash(string s) { int ans=0,l=s.length(); for(int i=0;i<l;i++)ans=(ans*base%mod+(s[i]-'0'+1))%mod; return ans; } 2. 前缀函数 void 阅读全文
posted @ 2021-07-11 22:48 pjykk 阅读(81) 评论(0) 推荐(0)
摘要: 感觉自己对这种数据结构理解的一直不是很好…… 于是就有了这一篇。相信所有人都能看懂( 符号约定: 对于队列,使用[表示队首,使用]表示队尾。 对于栈,使用<表示栈顶,使用]表示栈底。 1. 单调队列 1.1 什么是单调队列 顾名思义,“单调队列”就是队列内元素满足单调性的队列。 比如下面这三个队列: 阅读全文
posted @ 2021-07-10 22:57 pjykk 阅读(340) 评论(0) 推荐(0)
摘要: 不包括字符串和图论内容。 代码压行警告qwq 如果存在与数据结构有关的经典算法,也会予以列出。 1. 单调队列 $O(n)$ luoguP1886 单调队列和单调栈的讲解在这里 const int maxn=1000010; int n,k,cnt,a[maxn],minans[maxn],maxa 阅读全文
posted @ 2021-07-08 23:05 pjykk 阅读(101) 评论(0) 推荐(0)
摘要: -1. 本文章中所有函数原型均为C++98的标准。 没有 bitset。 通用的操作 //遍历容器——以vector,map为例 vector<int> vt; map<int,int> mp; for(vector<int>::iterator it=vt.begin();it!=vt.end() 阅读全文
posted @ 2021-07-07 23:14 pjykk 阅读(84) 评论(0) 推荐(0)
摘要: 1. 矩阵快速幂、加速数列递推与高斯消元解线性方程组 1. 矩阵模板 struct matrix{int n,m,a[110][110];}; matrix input(int n,int m)//输入矩阵 { matrix A;A.n=n;A.m=m; for(int i=1ll;i<=A.n;i 阅读全文
posted @ 2021-02-18 15:52 pjykk 阅读(94) 评论(0) 推荐(0)