摘要: P3970 先离散化,再用树状数组维护DP转移,计算过程中需要去重。 P3910 用等差数列求和公式得到 \(M = \frac{(a + b)(b - a + 1)}2\),枚举 \(a + b\),计算 \(b - a + 1\),再用已知条件解方程。 P1362 通过打表观察发现,每个 Rab 阅读全文
posted @ 2025-10-23 09:27 langni2013 阅读(7) 评论(1) 推荐(0)
摘要: 1.扩展欧几里得 扩展欧几里得,是一种用于求不定方程 \(ax + by = \gcd(a, b)\) 的整数解的算法。 要求解方程 \(ax + by = c\),我们需要先知道这个方程是否有解。这就需要用到裴蜀定理。 裴蜀定理:对于两个整数 \(a, b\),设 \(d = \gcd(a, b) 阅读全文
posted @ 2025-08-31 11:21 langni2013 阅读(15) 评论(1) 推荐(0)
摘要: (看到各位dalao都写了日祭,我也开始写了qwq) 7.7 换了座位,上了一天的DFS的剪枝,坐在那儿无聊得都要睡着了。 7.8 考试考DFS剪枝。T5非常简单,半个月前刚做过,杨辉三角秒了,就这还能叫思维题?我认为最简单的T4挂了,因为DFS忘记回溯了,然后下午某人讲这道题时一直在说"一定要记得 阅读全文
posted @ 2025-07-13 20:49 langni2013 阅读(19) 评论(0) 推荐(0)
摘要: 模板题号:P4180 题意:给定一个 \(n\) 个点,\(m\) 条边的图,求它的严格慈孝次小生成树。 严格次小生成树,就是只一个图的边权和大于最小生成树的边权和最小的生成树。我们非常容易想到暴力的做法:枚举枚举选哪 \(n - 1\) 边,再判断是否是原图的生成树,再比大小。但是这样时间复杂度有 阅读全文
posted @ 2025-06-26 18:01 langni2013 阅读(54) 评论(0) 推荐(0)
摘要: 1.欧几里得算法 欧几里得算法是一种用来求两个数的最大公因数的算法。用欧几里得算法求 \((a, b)\) 时,主要步骤如下: 1.如果 \(a \mod b = 0\),则 \((a, b) = b\); 2.如果 \(a \mod b \ne 0\),则求出 \((b, a \mod b)\) 阅读全文
posted @ 2025-05-04 13:22 langni2013 阅读(28) 评论(0) 推荐(0)
摘要: 树链剖分是基于线段树的一种算法。这种算法主要用于对树的维护,可以在 \(O(logn^2)\) 的时间内实现对于树上的一条简单路径的修改与查询。 树链剖分主要分为重链剖分、长链剖分等几类。这里讲的是重链剖分。 以洛谷P3384为例,我们可以把一棵树分为几个重链,再给子节点编号,最后按照线段树的做法解 阅读全文
posted @ 2025-05-02 10:28 langni2013 阅读(19) 评论(0) 推荐(0)
摘要: 线段树,是一种可以实现 \(O(logn)\) 区间修改、\(O(logn)\) 区间查询的算法。线段树存储的是某个区间中的值,利用二分查找的原理实现修改与查询。 已存储区间和为例,区间 \([1, 5]\) 可以分为两个小区间 \([1, 3]\) 和 \([4, 5]\),最后区间 \([1, 阅读全文
posted @ 2025-04-28 21:13 langni2013 阅读(28) 评论(0) 推荐(0)
摘要: 最小生成树,即求把一个图删除部分边以后,仍然能使图连通的树的边权和的最小值。 最小生成树有两种解法,一种是Prim算法,另一种是Kruskal算法。 1.Prim算法 Prim算法的主要思想是从一个点开始,记录能连通到这个点的边权的最小值,最后相加求出答案。 假设用 \(dis\) 数组记录当前已经 阅读全文
posted @ 2025-04-28 20:55 langni2013 阅读(13) 评论(0) 推荐(0)
摘要: 1.一元二次方程的定义 一元二次方程主要可以拆成 \(3\) 个部分,分为: 一元:代表只有一个未知数,如果含有 \(2\) 个及以上的未知数,则不是一元二次方程。 二次:代表方程中未知数的最高次数为 \(2\)。 方程:代表这个式子必须要是方程。 而且,一元二次方程必须是整式方程,如果是分母中有未 阅读全文
posted @ 2025-04-28 17:04 langni2013 阅读(351) 评论(0) 推荐(0)