摘要:
manacher算法的由来不再赘述,自行百度QWQ。。。 进入正题,manacher算法是一个高效的计算回文串的算法,回文串如果不知道可以给出一个例子:“ noon ”,这样应该就很清晰了; 其实这个算法虽然名字长,但是实际代码很短,而且理解起来并不难。。。(连我这种蒟蒻都懂了) 这里给出模板题 题 阅读全文
摘要:
Gauss算法,称为高斯消元算法,用来解决n元一次方程,在解决线性方程问题起着重要作用。 简述 运用高斯消元的方法,我们可以在O(n3)的时间求出n元线性方程,但是由于时间复杂度的原因,请注意题目数据范围的提示。 高斯消元三大定理(在小学就学过了吧): 1.两个方程互换位置,解不变; 2.一个方程进 阅读全文
摘要:
莫队思想浅谈 莫队,基于分块思想。 所以说,在学习莫队时可以先了解一下分块的优化原理,这对于莫队的理解会有帮助; 我们将分层次讲解,难度不断增加,并附有例题。。。(由于博主太烂懒,所以莫队的模板概念知识只会在这里叙述) 1.莫队: 基础的莫队是用来解决区间离线查询问题,利用分块原理和排序,将查询时的 阅读全文
摘要:
。。。。 有点懒; 需要先理解几个概念: 1. LCA 2. 线段树(熟练,要不代码能调一天) 3. 图论的基本知识(dfs序的性质) 这大概就好了; 定义: 1.重儿子:一个点所连点树size最大的,这个son被称为这个点的重儿子; 2.轻儿子:一个点所连点除重儿子以外的都是轻儿子; 3.重链:从 阅读全文
摘要:
例题 P1169 [ZJOI2007]棋盘制作 题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋、象棋以及日本的将棋同享盛名。据说国际象棋起源于易经的思想,棋盘是一个8×88 \times 88×8大小的黑白相间的方阵,对应八八六十四卦,黑白对应阴阳。 而我们的主人公小Q,正是国际象棋的 阅读全文
摘要:
请在学习之前有一定的线段树基础 在一些题中,它总会给你一些矩形,之后让你求总覆盖面积。 它的难点在于,有重叠面积,如果只是罗列情况,那么只会一事无成。 所以说,这里就引进了扫描线做法; 其实它的原理很简单,只是底*高而已,只是分段求解; 而问题大概的图就是这样 根据我刚刚说的分段求解和底*高,那么我 阅读全文
摘要:
差分,也就是数与数之间的差值。拿一维差分来举例子,将差分设为c[ ]数组,原数为a[ ],那么 $c[i]=a[i]-a[i-1]$ 这便是简单的差分数组; 那么要他何用? 最为主要的作用就是区间的修改,那么在修改之前,我们先明白如何将原数求出。很显然,c[1]~c[i]差分数组求和即可得到a[i] 阅读全文
摘要:
DP是一个范围极广的一门重要的算法,它与其他算法不同的是,它并没一套固定的公式,而是通过一种特定的思路,来进行无后效性的转移。其本质是通过一个状态转移至另一状态,将问题从大化小,并找到这些小问题之间的联系,从而实现最终答案的推出; 这种思想类似于数学归纳法,实质上其实通过数学归纳法以来推出通项公式, 阅读全文
摘要:
据说差分约束有很多种,但是我学过的只有SPFA求差分; 我们知道,例如 A-B<=C,那么这就是一个差分约束。 比如说,著名的三角形差分约束,这个大家都是知道的,什么两边之差小于第三边啦,等等等等。 所以说,我们学他干嘛(我们得出结论:学他没用,谢谢大家观看) 咳咳——说正事,我们来看一道例题:【l 阅读全文
摘要:
LCA,最近公共祖先,这是树上最常用的算法之一,因为它可以求距离,也可以求路径等等 LCA有两种写法,一种是倍增思想,另一种是Tarjan求法,我们可以通过一道题来看一看, 题目描述 欢乐岛上有个非常好玩的游戏,叫做“紧急集合”。在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两 阅读全文