随笔分类 - 信息学
摘要:P3970 先离散化,再用树状数组维护DP转移,计算过程中需要去重。 P3910 用等差数列求和公式得到 \(M = \frac{(a + b)(b - a + 1)}2\),枚举 \(a + b\),计算 \(b - a + 1\),再用已知条件解方程。 P1362 通过打表观察发现,每个 Rab
        阅读全文
                
摘要:1.扩展欧几里得 扩展欧几里得,是一种用于求不定方程 \(ax + by = \gcd(a, b)\) 的整数解的算法。 要求解方程 \(ax + by = c\),我们需要先知道这个方程是否有解。这就需要用到裴蜀定理。 裴蜀定理:对于两个整数 \(a, b\),设 \(d = \gcd(a, b)
        阅读全文
                
摘要:模板题号:P4180 题意:给定一个 \(n\) 个点,\(m\) 条边的图,求它的严格慈孝次小生成树。 严格次小生成树,就是只一个图的边权和大于最小生成树的边权和最小的生成树。我们非常容易想到暴力的做法:枚举枚举选哪 \(n - 1\) 边,再判断是否是原图的生成树,再比大小。但是这样时间复杂度有
        阅读全文
                
摘要:1.欧几里得算法 欧几里得算法是一种用来求两个数的最大公因数的算法。用欧几里得算法求 \((a, b)\) 时,主要步骤如下: 1.如果 \(a \mod b = 0\),则 \((a, b) = b\); 2.如果 \(a \mod b \ne 0\),则求出 \((b, a \mod b)\) 
        阅读全文
                
摘要:树链剖分是基于线段树的一种算法。这种算法主要用于对树的维护,可以在 \(O(logn^2)\) 的时间内实现对于树上的一条简单路径的修改与查询。 树链剖分主要分为重链剖分、长链剖分等几类。这里讲的是重链剖分。 以洛谷P3384为例,我们可以把一棵树分为几个重链,再给子节点编号,最后按照线段树的做法解
        阅读全文
                
摘要:线段树,是一种可以实现 \(O(logn)\) 区间修改、\(O(logn)\) 区间查询的算法。线段树存储的是某个区间中的值,利用二分查找的原理实现修改与查询。 已存储区间和为例,区间 \([1, 5]\) 可以分为两个小区间 \([1, 3]\) 和 \([4, 5]\),最后区间 \([1, 
        阅读全文
                
摘要:最小生成树,即求把一个图删除部分边以后,仍然能使图连通的树的边权和的最小值。 最小生成树有两种解法,一种是Prim算法,另一种是Kruskal算法。 1.Prim算法 Prim算法的主要思想是从一个点开始,记录能连通到这个点的边权的最小值,最后相加求出答案。 假设用 \(dis\) 数组记录当前已经
        阅读全文
                
                    
                
浙公网安备 33010602011771号