- 博客(7)
- 收藏
- 关注
转载 20190808 manacher算法
马拉车算法是一个用于求字符串中最长回文子串的算法,通常若我们暴力枚举计算最长回文子串时间复杂度为o(n^2),而马拉车算法的时间复杂度是o(n)luogu3805 【模板】manacher算法 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 usin...
2019-08-08 16:59:00
65
转载 20190801 bfs双向搜索 | Knight Moves
loj#10028. 「一本通 1.4 例 3」Knight Moves用双向宽度搜索,可以节省许多计算次数/*刚开始看这道题还以为是骑士精神呢仔细看题后,发现它应该比骑士精神简单一些骑士精神是是一整张棋盘达到目标棋盘状态(使用bfs太慢,于是用迭代加深+可行性剪枝dfs) 而本题是让一个棋子达到目标位置 (bfs可以,再加上双向搜索会减少很多延伸...
2019-08-01 15:13:00
153
转载 20190801 bfs判重 | 魔板
洛谷2730魔板题目背景在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:1 2 3 48 7 6 5题目描述我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,...
2019-08-01 12:01:00
134
转载 20190729 树链剖分
树链剖分真是难写极了:你需要先熟练掌握深搜、线段树、倍增。。。(都是不好写的东西啊,一手滑就wa)一、简介树链剖分通常用于维护静态树上路径信息的问题。树链剖分的核心就是将数分为若干重链、轻链,然后把他们当做序列,按顺序拼接起来,处理序列上的区间问题二、相关量Fa【x】:x在树中的父亲(用于倍增)Dep【x】:x在树中的深度(用于倍增)Siz...
2019-07-29 16:48:00
98
转载 20190729 线段树
线段树真是一个很重要很重要的数据结构!!!一、概念线段树是一棵二叉树,每个节点维护序列的一段区间二、复杂度o(nlogn)开数组一般要开四倍空间三、相关量儿子:除了叶子节点,每个节点都有左儿子和右儿子左儿子:左儿子的节点编号是父节点的两倍2 * ro,对应父节点左一半区间【l,mid】右儿子:右儿子的节点编号是父节点的二倍加一2 * ...
2019-07-29 16:02:00
98
转载 20190616 权值线段树
线段树咕咕咕我来写一个好写的权值线段树的解析吧权值线段树是什么线段树每个点维护的是点的值,而权值线段树叶子点维护的是一个数出现的次数,父节点维护的是它代表的区间里的数出现的次数的和权值线段树基本操作其实权值线段树的基本操作与线段树没有太大的不同建树注意:由于一个叶子节点代表一个数出现的次数,所以,在数的范围非常大时,我们常常需要把这些数排个序,按排序重新赋值(...
2019-06-16 10:44:00
60
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人