![](https://img-blog.csdnimg.cn/d9df3ec21f6d4fba94f2062a484cd194.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法精讲系列
文章平均质量分 79
根据本人的学习情况,对某种算法进行清晰的讲解
DengDuckOI
GD垫底OIer,洛谷的DengDuck
展开
-
莫队算法学习笔记
莫队是一种离线算法。原创 2023-07-01 21:23:17 · 220 阅读 · 0 评论 -
浅谈一类反悔贪心的问题
我们用差分处理出相邻的数字形成区间的价值,然后我们发现这里相邻的区间占有相同的点,不可同时选择,也就是相邻的区间不可选择。需要注意的是,其实这里我们选择的数字不一定是答案方案中的数字,而是我们不断启用反悔机制,不断算上增量,得到最终答案。我们考虑一个反悔贪心,首先用一个链表来维护数列,然后,每次贪心的选择最大的数字,并标记左右不可用。个数字,他们都有价值,使得没有相邻的数字被取到,且数字之和最大。个数字,他们都有价值,使得没有相邻的数字被取到,且数字之和最大。两边的数字,这就是我们的反悔了。原创 2023-05-09 14:12:33 · 484 阅读 · 0 评论 -
浅谈整除分块
不难发现,随着x增大 ,y单调不增,这说明对于相同值的y总是分布在同一块区域。这启发我们根据y值,把x分组,每组“打包”算好。原创 2023-05-08 19:36:09 · 445 阅读 · 0 评论 -
快速傅里叶变换FFT学习笔记
我们正常表示一个多项式的方式,形如Axa0a1xa2x2...anxn,这是正常人容易看懂的,但是,我们还有一种表示法。我们知道,n1个点可以表示出一个n次的多项式。于是,我们任意地取n1个不同的值,表示x,求出的值与x对应,形成n1个点,这就可以表示。原创 2023-04-30 09:29:16 · 1422 阅读 · 0 评论 -
浅谈 LIS 问题的几种做法
LIS 问题也就是最长不下降子序列问题,是一个经典的问题。原创 2023-04-29 11:53:07 · 934 阅读 · 0 评论 -
拉格朗日插值学习笔记
拉格朗日是好的原创 2023-03-22 21:14:12 · 99 阅读 · 0 评论 -
KMP算法学习笔记
算出,如果匹配失败,可以找出前面的,与后缀一样的部分,顶上来匹配,节省时间。是一样的,所以在两者的内部,肯定都会有一对长度为。,等于则问题解决,否则故技重施,再找出一个前缀。KMP是一个求解字符串匹配问题的算法。那么,我们考虑新的这个前缀后面等不等于。就方便许多了,我们将短的那个字符串的。这里的前缀和后缀概念略有不同,如。项的相同的前缀和后缀的最大长度。,则相同的前缀和后缀的最大为。再举一个例子,假设有字符串。大小的相同的前缀和后缀。总算把这个东西搞懂了…可以手动模拟理解一下。这个东西的核心是一个。原创 2023-03-09 12:45:05 · 108 阅读 · 0 评论 -
Lucas定理——定义、证明、实现、运用
这是一个有助于分解组合数来求解的定理,适合模数小,数字大的问题。原创 2023-02-11 14:01:40 · 569 阅读 · 0 评论 -
Atcoder 动态规划专项赛解题报告(更新至S题)
偶然发现了 Atcoder 的一场动态规划专项赛,视若珍宝。这套题可以很好的练习思维。原创 2022-10-24 16:06:17 · 663 阅读 · 0 评论 -
【黑历史】合并石子三讲
合并石子其实和 合并果子很像只是合并 只能相邻,但其实也方便了 区间dp从最后一次合并开始思考最后一次合并前,石子肯定只有两堆 ,设k为两者 中点 , 也就是两堆中间的位置第一堆是原来的1到k堆,第二堆是原来的第k+1到第n堆。显然,要使得总代价最小,必然是该两堆式子之前的合并代价最小。然后不断拆分成子问题解决定义状态f(i,j)表示 第i堆石子到第j堆石子 的 最小合并代价 。目标状态即为f(1,n)。方程——f(i,j)=min(f(i,k)+f(k+1,j)+sum(i,j);sum是什么呢?是一个原创 2021-09-05 18:52:00 · 407 阅读 · 0 评论 -
【远古黑历史】List链表及其功能
STL,全称 Standard Template Library,也就是标准模板库,它是在惠普实验室开发出来的,它主要出现到C++中,STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器)原创 2021-07-26 20:15:00 · 181 阅读 · 0 评论 -
【黑历史】图论算法——并查集入门
某个家族人员过于庞大,要判断两个人是否是亲戚很不容易。现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。这是亲戚的题面我们先不要管这道题的输入输出,我们假设他给出的不是两个人的亲戚关系,而是告诉你a是b的儿子。那我这个时候就出现了二条基本的法则:1.如果a是b的儿子,那么b就不是a的儿子。2.一个人可以有多个儿子,但只能有一个父亲。这个时候我们再来思考,...原创 2021-10-21 19:15:00 · 77 阅读 · 0 评论 -
浅谈倍增法求解LCA
考虑一次跳多一点记$fa_{u,k}$表示距离$u$的边数为$2^k$的祖先节点则$fa_{u,k}=fa_{fa_{u,k-1},k-1}$可以通过dfs求出$fa$如果求LCA,我们可以很快让两点来到相同的深度考虑求两点深度差,将差二进制拆分,每次跳一个$2$的幂,时间复杂度$O(\log n)$当然,没必要真的二进制拆分,因为我们要知道是$2$的几次幂,所以用`cmath`的`log2`更加方便这里有一个优化:用$O(n)$的时间复杂度递推求出`log2`的值然后,如果两点深度......原创 2022-06-09 21:11:08 · 294 阅读 · 0 评论 -
浅谈BSGS和EXBSGS
我的 BSGS 和各位犇犇的差不多,但是不需要求逆元Luogu [ TJOI2007 ] 可爱的质数原题展现题目描述给定一个质数 \(p\),以及一个整数 \(b\),一个整数 \(n\),现在要求你计算一个最小的非负整数 \(l\),满足 \(b^l \equiv n \pmod p\)。输入格式仅一行,有 \(3\) 个整数,依次代表 \(p, b, n\)。输出格式仅一行,...原创 2022-05-28 12:40:00 · 113 阅读 · 0 评论 -
【精讲】经典问题——0/1背包问题
在n件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn,对于每个物品只需要考虑选与不选两种情况,求解将哪些物品装入背包可使价值总和最大。背包问题,是DP中的经典题型,而0/1背包是经典中的经典建议阅读:B站大佬开讲百科:记忆化搜索百科:动态规划模板题:vijos 0/1背包进阶练习:vijos 1104:采药...原创 2021-10-21 19:17:00 · 152 阅读 · 0 评论 -
【速通】传递闭包
这个算法非常水!!速通版传递闭包其实就是求出 i 可不可以直接或间接到达 j我们用 邻接矩阵 存储用 弗洛伊德 ,如果 i 能到 k,且 k 能 到 j,则 i 可以到 j求一遍,复杂度O( \(n^3\) )好的刷水题,模板不说了,code#include<bits/stdc++.h>using namespace std;int n,a[105][105];...原创 2021-10-22 21:28:00 · 111 阅读 · 0 评论