随笔分类 - 算法----------
摘要:定义 (还记得这些定义吗?如果对 图的概念 和 存储 不了解请点击链接) 路径 最短路 有向图中的最短路、无向图中的最短路 单源最短路、每对结点之间的最短路 性质 对于边权为正的图,任意两个结点之间的最短路,不会经过重复的结点。 对于边权为正的图,任意两个结点之间的最短路,不会经过重复的边。 对于边
        阅读全文
                
摘要:「Meissel-Lehmer 算法」是一种能在亚线性时间复杂度内求出 \(1\sim n\) 内质数个数的一种算法。 在看素数相关论文时发现了这个算法,论文链接:Here。 算法的细节来自 OI wiki,转载仅作为学习使用。 目前先 mark 一下这个算法,等有空的时候再来研究一下,算法的时间复
        阅读全文
                
摘要:本节部分内容译自博文 Решето Эратосфена 与其英文翻译版 Sieve of Eratosthenes。其中俄文版版权协议为 Public Domain + Leave a Link;英文版版权协议为 CC-BY-SA 4.0。 素数筛法 如果我们想要知道小于等于 \(n\) 有多少个
        阅读全文
                
摘要:本文探究了生成树问题的相关知识。 写在前面 生成树问题是图论的重点,其中最小生成树更是最基础的入门问题。 Murabito 将会在这里记录他有关生成树的理解。此类问题众多,本文将不断更新。 问题介绍 给定一个 \(n\) 个顶点, \(m\) 条边的无向图。要求你从中选择 \(n−1\) 条边,构成
        阅读全文
                
摘要:区间DP是一类在区间上进行动态规划的最优问题,一般是根据问题设出一个表示状态的 dp,可以是二维的也可以是三维的,一般情况下为二维。然后将问题划分成两个子问题,也就是一段区间分成左右两个区间,然后将左右两个区间合并到整个区间,或者说局部最优解合并为全局最优解,然后得解。 这类DP可以用常规的for循
        阅读全文
                
摘要:题目链接:Here 树形DP 算法讲解:Here 无向联通图其实就是树的形状,其次让我们以 s 为根使得所有的叶子节点不能到达根并且让删去边权的总和最小,那么就是典型的 树形DP 了。 \(dp_i\) 代表以节点 \(i\) 为根节点而其子树内的根节点无法达到根节点的最小代价,\(dp_i = m
        阅读全文
                
摘要:问题描述 所谓“马踏棋盘”问题,就是指在中国象棋的棋盘上,用马的走法走遍整个棋盘,在8*8的方格中,每个格都要遍历,且只能遍历一次。 问题解析 从起始点开始,根据“马”的走法,它的下一步的可选择数是有0—8个的。 我们知道,当下一步的可选择数为0的时候,进行回溯。当下一步的可选择数有1个的时候,我们
        阅读全文
                
摘要:题目链接:Here 遇到这种数据范围较小的计数问题应该优先考虑dp,本题就是如此。 那么应该怎么样考虑转移呢? 首先最后C中的那个价值最大的子串一定是由字符串A的一个区间和字符串B的一个区间合并得到的, 那么现在假设 A[i] ~ A[j]与 B[k] ~ B[l] 构成了一个回文串(这里设 dp[
        阅读全文
                
摘要:学习 自为风月马前卒 大佬的数学笔记 \(i^2\) 求和 查阅资料我们很容易就发现 \(\sum_{i = 1}^ni^2 = \frac{n(n + 1)(2n + 1)}{6}\) 但具体怎么求得的呢?今天偶然间在 Miskcoo大佬的博客中看到了一种脑洞清奇通俗易懂的证明方法 我们要求 \(
        阅读全文
                
摘要:一个基础的数论问题。 试求 \(\sum_{i=0}^n\left\lfloor \frac{ai+b}{c} \right\rfloor\) 的值,其中:\(a,b \ge 0\),\(n,c >0\) 在Atcoder的AC库中有这样一个函数可以在 \(\mathcal{O}(lg(n + c 
        阅读全文
                
摘要:抽屉原理,亦可称之为鸽巢原理。 先考虑一种简单的情况:有 \(n+1\) 个苹果,想要放到 \(n\) 个抽屉里,那么必然会有至少一个抽屉里有两个(或以上)的苹果。 这个定理看起来比较显然,证明方法考虑反证法:假如所有抽屉都至多放了一个苹果,那么 \(n\) 个抽屉至多只能放 \(n\) 个苹果,矛
        阅读全文
                
摘要:倍增 倍增是一种非常重要的思想,在 ACM/OI 中有着丰富的应用。 倍增的本质可以表述为,对于一种操作$f(x)$,通过计算$f(x),f2(x),f4(x),\cdots,f^{2k}(x)$来加速求解$fn(x)$。假设$f(x)$的时间复杂度为$O(1)$,那么直接计算$f^n(x)$的时间
        阅读全文
                
摘要:快速傅里叶变换 快速傅里叶变换(Fast Fourier Transform, FTT)在ACM/OI中最主要的应用是计算多项式乘法。 多项式的系数表示和点值表示 假设$f(x)$为$x$的$n$阶多项式,则其可以表示为: \(f(x)=\sum_{i=0}^na_ix^i\) 这里的$n+1$个系
        阅读全文
                
摘要:1、什么是反悔贪心? 贪心本身是没有反悔操作的,贪心求的就是当前的最优解。但当前的最优解有可能是局部最优解,而不是全局最优解,这时候就要进行反悔操作。 另外的来自蒟蒻dalao的解释: 众所周知,正常的贪心算法是指在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法
        阅读全文
                
摘要:整除分块是个啥:要求$∑_{i = 1}^n{n/i}$ 的值,这时候暴力需要O(n)的时间。由于这个区间是连续的,且’/'是向下取整,当i不能整除k时,n/i会等于最小的i(也就是区间最左边的值 L)除n的商。此时如果可以很快的找到这一个区间,那么就可以将时间复杂度降到$O(\sqrt{n})$。
        阅读全文
                
 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号