随笔分类 -  算法

算法学习记录
摘要:时空复杂度分析 一般笔试题的时间限制是1秒或2秒。而 C++ 一秒之内能够计算 107108 次。 下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择: n30, 指数级别, dfs+剪枝,状态压缩dp n100 => O(n3)O,fl 阅读全文
posted @ 2023-01-13 20:40 S!no 阅读(44) 评论(0) 推荐(0) 编辑
摘要:绝对值不等式 题目链接:AcWing 104. 货仓选址 $$ \begin{align*} f(x) &= \lvert x_1 - x \rvert + \lvert x_2 - x \rvert + \cdots + \lvert x_n - x \rvert \ &= ( \lvert x_ 阅读全文
posted @ 2023-01-11 23:16 S!no 阅读(23) 评论(0) 推荐(0) 编辑
摘要:推公式 题目链接:AcWing 125. 耍杂技的牛 先给出结论: 按照W[i]+S[i]从小到大的顺序排,最大的危险系数一定是最小的。 证明思路: 贪心得到的答案 最优解 贪心得到的答案 最优解 #include <iostream> #include <algorithm 阅读全文
posted @ 2023-01-11 23:14 S!no 阅读(39) 评论(0) 推荐(0) 编辑
摘要:排序不等式 题目链接:AcWing 913. 排队打水 让最磨叽的人最后打水。 如图所示,第一个同学被等了6次,第二个同学被等了5次,以此类推... =t1×(n1)+t2×(n2)+t3×(n3)+ 阅读全文
posted @ 2023-01-11 18:35 S!no 阅读(134) 评论(0) 推荐(0) 编辑
摘要:Huffman树 题目链接:AcWing 148. 合并果子 利用贪心的思想,每次从当前所有堆中,挑出最小的两堆合并即可。 #include <iostream> #include <algorithm> #include <queue> using namespace std; int main( 阅读全文
posted @ 2023-01-11 18:07 S!no 阅读(18) 评论(0) 推荐(0) 编辑
摘要:区间问题 区间问题 1. 区间选点 2. 最大不相交区间数量 3. 区间分组 4. 区间覆盖 区间选点 题目链接:AcWing 905. 区间选点 题目描述 给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。 输出选择的点的最小数量。 位 阅读全文
posted @ 2023-01-11 17:35 S!no 阅读(191) 评论(0) 推荐(0) 编辑
摘要:记忆化搜索 题目链接:AcWing 901. 滑雪 题目描述 给定一个 RC 列的矩阵,表示一个矩形网格滑雪场。 矩阵中第 i 行第 j 列的点表示滑雪场的第 i 行第 j 列区域的高度。 一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离 阅读全文
posted @ 2023-01-07 19:01 S!no 阅读(24) 评论(0) 推荐(0) 编辑
摘要:树形DP 题目链接:AcWing 285. 没有上司的舞会 题目描述 Ural 大学有 N 名职员,编号为 1N。 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。 每个职员有一个快乐指数,用整数 Hi 给出,其中 1iN。 现在要召开一场周年庆 阅读全文
posted @ 2023-01-07 18:30 S!no 阅读(27) 评论(0) 推荐(0) 编辑
摘要:状态压缩DP 蒙德里安的梦想 问题描述 求把 N×M 的棋盘分割成若干个 1×2 的长方形,有多少种方案。 例如当 N=2M=4 时,共有 5 种方案。当 N=2M=3 时,共有 3 种方案。 如下图所示: 输入格式 输入包含多组测试用例。 每组测试用例占一行,包含两个整 阅读全文
posted @ 2022-12-18 09:48 S!no 阅读(34) 评论(0) 推荐(0) 编辑
摘要:数位统计 DP 数位统计DP是与数字相关的一类计数问题。在这类题目中,一般给定一些限制条件,求满足限制条件的第 K 小的数是多少,或者求在区间 [L,R] 内有多少个满足限制条件的数。解决方法为先利用动态规划进行预处理,再基于拼凑思想,用“试填法”求出最终的答案。 题目链接:AcWing 3 阅读全文
posted @ 2022-12-18 09:47 S!no 阅读(114) 评论(0) 推荐(0) 编辑
摘要:计数类 DP 题目链接:AcWing 900. 整数划分 问题描述 一个正整数 n 可以表示成若干个正整数之和,形如:n=n1+n2++nk,其中 n1n2nk,k1。 我们将这样的一种表示称为正整数 n 的一种 阅读全文
posted @ 2022-12-14 10:06 S!no 阅读(25) 评论(0) 推荐(0) 编辑
摘要:区间DP 到目前为止,我们介绍的线性 DP 一般从初态开始,沿着阶段的扩张向某个方问递推,直至计算出目标状态,区间 DP 也属于线性 DP 中的一种,它以“区间长度”作为 DP 的“阶段”,使用两个坐标(区间的左、右端点),描述每个维度。在区间 DP 中,一个状态由若干个比它更小且包含于它的区间所代 阅读全文
posted @ 2022-12-11 11:18 S!no 阅读(64) 评论(0) 推荐(0) 编辑
摘要:线性DP 线性DP 数字三角形 最长上升子序列(LIS)问题 最长上升子序列(LIS)问题 II 最长公共子序列(LCS)问题 最短编辑距离 编辑距离 具有线性“阶段”划分的动态规划算法被统称为线性DP。 数字三角形 题目链接:AcWing 898. 数字三角形 问题描述 给定一个共有 N 行的 阅读全文
posted @ 2022-12-11 11:18 S!no 阅读(44) 评论(0) 推荐(0) 编辑
摘要:博弈论 博弈论 NIM 博弈 台阶-Nim游戏 公平组合游戏ICG 有向图游戏 Mex 运算 SG 函数 有向图游戏的和 定理 集合-Nim游戏 拆分-Nim游戏 NIM 博弈 给定 n 堆物品,第 i 堆物品有 Ai 个。两位玩家轮流操作,每次操作可以任选一堆,拿走任意数量的物品(可 阅读全文
posted @ 2022-12-10 09:35 S!no 阅读(107) 评论(0) 推荐(0) 编辑
摘要:背包问题 背包问题 0/1 背包问题 完全背包 多重背包 二进制拆分法 分组背包 背包是线性 DP 中一类重要而特殊的模型,本文将其作为单独一部分进行总结整理。 0/1 背包问题 0/1 背包问题的模型如下: 给定 N 个物品,其中第 i 个物品的体积为 Vi ,价值为 Wi阅读全文
posted @ 2022-12-10 09:35 S!no 阅读(43) 评论(0) 推荐(0) 编辑
摘要:容斥原理 设 S1,S2,,Sn 为有限集合,|S| 表示集合 S 的大小,则: $$ \vert \bigcup\limits_{i=1}^{n}S_i \vert = \sum\limits_{i=1}^{n} \vert S_i \vert - \sum\limi 阅读全文
posted @ 2022-12-10 09:34 S!no 阅读(129) 评论(0) 推荐(0) 编辑
摘要:组合计数 组合计数 求组合数 I —— 预处理组合数 求组合数 II —— 预处理阶乘 求组合数 III —— 卢卡斯定理(Lucas) 求组合数 IV —— 高精度 满足条件的01序列 —— 卡特兰数 求组合数 I —— 预处理组合数 给定 n 组询问,每组询问给定两个整数 ab,请 阅读全文
posted @ 2022-12-10 09:34 S!no 阅读(146) 评论(0) 推荐(0) 编辑
摘要:高斯消元 高斯消元 高斯消元解线性方程组 高斯消元解异或线性方程组 高斯消元解线性方程组 通过初等行变换把增广矩阵化为阶梯型矩阵,并回代得到方程的解 适用于求解 包含 n 个方程,n 个未知数的多元线性方程组 前置知识:初等行(列)变换 把某一行乘一个非00的数 (方程的两边同时乘上一个非0 阅读全文
posted @ 2022-12-10 09:34 S!no 阅读(65) 评论(0) 推荐(0) 编辑
摘要:中国剩余定理 设 m1,m2,,mn 是两两互质的整数,m=i=1nmiMi=m/mi(除了 mi 之外其他所有 m 的乘积),ti 是线性同余方程 Miti=1(modmi) 的一 阅读全文
posted @ 2022-12-10 09:34 S!no 阅读(111) 评论(0) 推荐(0) 编辑
摘要:扩展欧几里得算法 扩展欧几里得算法 欧几里得算法/辗转相除法(Euclidean algorithm) 裴蜀定理(Bézout 定理) 扩展欧几里得算法(Extended Euclidean algorithm) 求解线性同余方程 欧几里得算法/辗转相除法(Euclidean algorithm) 阅读全文
posted @ 2022-12-10 09:34 S!no 阅读(101) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示