摘要: 1.哈希 哈希永远的神!!! 哈希将一段字符串的每一个子串都可以用前缀和差分来表示,并能比较两个字符串是否相同,配合二分等算法,可以一较优的复杂度去实现一些字符串子段问题 2.KMP KMP是一种字符串循环节求解问题的一种方法,具体来说,KMP维护了一个nxt数组,表示从位置1到位置i的字符串中最长 阅读全文
posted @ 2022-05-31 18:38 蒟蒻jht 阅读(33) 评论(0) 推荐(0)
摘要: dalao 分治是什么 分治一般会将某集中操作按某一标准(时间,取值,......)划分为两个部分,按同样思路计算这两个部分的答案,然后再计算这两个部分之间的相互影响(一般为单方面) 1.CDQ分治(基于时间的分治) 这一类问题一般基于某一初始状态的数据结构(一般为序列),进行若干次操作(分为修改与 阅读全文
posted @ 2022-05-31 18:38 蒟蒻jht 阅读(34) 评论(0) 推荐(0)
摘要: 模拟退火是一种~~骗分~~算法。它主要适用于一些取最优值,而取值与答案找不到关系时使用。 对于这类题,我们首先需要得到一个时间复杂度并不大的calc函数,表示对于某一个取值时的答案。 接着就是退火函数 点击查看代码 ``` void tuihuo(){ double cur=rand(-10000, 阅读全文
posted @ 2022-05-31 18:37 蒟蒻jht 阅读(61) 评论(0) 推荐(0)
摘要: 前置1:积性函数 若$gcd(p,q)=1$,则$f(pq)=f(p)f(q)$ 其中欧拉函数,莫比乌斯函数,约数和函数,约束个数函数都是。 直观意义:卷积意义上f(x)=1的倒数 阅读全文
posted @ 2022-05-31 18:32 蒟蒻jht 阅读(130) 评论(0) 推荐(0)
摘要: 回滚莫队俗称不删除莫队,能够解决一些普通莫队所不能解决的问题 首先莫队对于多次询问某一段进行排序,需要支持每次在某一段左右两端添加一个点或删除一个点 但在很多时候我们发现添加或删除在某些时候其一难以完成 比如 维护一段区间内相距最远的同权的两点 显然用桶来维护的话增加是很好实现的,但删除则不然 代码 阅读全文
posted @ 2022-05-31 18:32 蒟蒻jht 阅读(58) 评论(0) 推荐(0)
摘要: 解决问题 高斯消元是用来解决n元一次方程组的,思路很简单,就是小学的加减消元与代入消元 首先我们先把第i行往下的每一行都减去该行的一个倍数,使得第i个未知数均被消去。 由于进度问题我们每次选取这些行中i的系数最大的交换为改行。 此时我们得到了一个所含未知数数量递减的方程组 之后我们把下面几行一一向上 阅读全文
posted @ 2022-05-31 18:32 蒟蒻jht 阅读(41) 评论(0) 推荐(0)
摘要: SAM可以解决几乎所有的字符串子串问题 SAM支持将一个字符串的所有子串与SAM中一条从起始点开始的路径一一对应(并在线性的时间与空间当中) 它的核心思想是将整个字符串都从头建进去。 核心代码: 点击查看代码 void add(int c){ int p=lst;//该点前的“主链”上的点 int 阅读全文
posted @ 2022-05-31 18:31 蒟蒻jht 阅读(452) 评论(1) 推荐(1)
摘要: 拿到题目后: bilibili!!!(突然兴奋) T1 拿上题目,看了十几分钟,终于看懂了题。 一道CF题 T2 总而言之,就是给定一组多测,询问一个序列和一个从根节点到某节点上所有点组成的序列打擂台的胜负情况。对于任意两个点打擂台的胜负输入。 我们可以证明一个性质:两个序列打擂台的胜负与将这两个序 阅读全文
posted @ 2022-05-31 18:30 蒟蒻jht 阅读(11) 评论(0) 推荐(0)