随笔分类 - C++
C++的算法模板,数据结构,图论等等,敬请期待
摘要:##背包DP [背包DP](https://oi-wiki.org/dp/knapsack/) ##区间DP [区间DP](https://oi-wiki.org/dp/interval/) ##DAG上的DP [DAG上的DP](https://oi-wiki.org/dp/dag/) ##树形D
阅读全文
摘要:#定义 最大公约数即为 Greatest Common Divisor,常缩写为 gcd。 一组整数的公约数,是指同时是这组数中每一个数的约数的数。 一组整数的最大公约数,是指所有公约数里面最大的一个。 那么如何求最大公约数呢?我们先考虑两个数的情况。 #欧几里得算法 ##过程 如果我们已知两个数
阅读全文
摘要:#引入 概率 DP 用于解决概率问题与期望问题,建议先对概率和期望的内容有一定了解。一般情况下,解决概率问题需要顺序循环,而解决期望问题使用逆序循环,如果定义的状态转移方程存在后效性问题,还需要用到 高斯消元 来优化。概率 DP 也会结合其他知识进行考察,例如 状态压缩,树上进行DP转移等。 #求法
阅读全文
摘要:#dp详解 [dp详解_不怕困难的博客](https://blog.csdn.net/m0_54615144/article/details/126014394) #dp模板 [C++动态规划模板汇总大全_不怕困难的博客](https://blog.csdn.net/m0_54615144/arti
阅读全文
摘要:#后缀定义 “后缀i”代表以第i个字符开头的后缀,存储是用i代表字符串s的后缀s[i...n] #后缀数组是什么? 后缀数组(Suffix Array)主要关系到两个数组:sa 和 rk。 其中,sa[i] 表示将所有后缀排序后第 i 小的后缀的编号,也是所说的后缀数组,后文也称编号数组 sa; r
阅读全文
摘要:#马拉车的定义 马拉车本质是对**中心扩展法**(暴力算法)的优化。 #马拉车是干什么的 Manacher算法帮助我们**在给定的字符串中找到最长的回文子串**。 为了简单起见,我们先只处理有奇数个字符的字符串,关于偶数个字符的字符串,在文章最后会给出解法。我们的处理思路和暴力算法基本一致,那就是从
阅读全文
摘要:#KMP算法 ##前言 KMP算法是一个著名的**字符串匹配**算法,效率很高,但是确实有点**复杂**。 ##简介 KMP 算法是 D.E.Knuth、J,H,Morris 和 V.R.Pratt 三位神人共同提出的,称之为 Knuth-Morria-Pratt 算法,简称 KMP 算法。该算法相
阅读全文
摘要:#**ceil()** ceil()函数是这样的: double ceil(double x) ceil函数可以把x上取整。 例子: #include <bits/stdc++.h> using namespace std; int main() { double a, b; cin >> a >>
阅读全文