prefix-and-difference 前缀和与差分 前缀和是正向思维,差分是前缀和的逆向思维。 【差分/排序】充能计划 https://www.lanqiao.cn/problems/8732/learning/?contest_id=147 题意:给定 nnn 个数初始化为 000,现在给定 qqq 个位置,每个位置给定两个参数 p,kp,kp,k,表示从第 kkk 个数开始连续 s[p]s[p]s[p] 个数 +1+1+1,返回 2024-03-21 Algorithm
number-theory 数论 整数问题。 【质数】Divide and Equalize 题意:给定 nnn 个数,问能否找到一个数 numnumnum,使得 numn=∏i=1nainum^n = \prod_{i=1}^{n}a_inumn=∏i=1nai 原始思路:起初我的思路是二分,我们需要寻找一个数使得n个数相乘为原数组所有元素之积,那么我们预计算出所有数之积,并且在数组最大值和最小值之间进行二分,每次二 2024-03-21 Algorithm
greedy 贪心 大胆猜测,小心求证(不会证也没事,做下一题吧)。证明方法总结了以下几种 反证法:假设取一种方案比贪心方案更好,得出相反的结论 边界法:从边界开始考虑,因为满足边界条件更加容易枚举,从而进行后续的贪心 直觉法:遵循社会法则() 1. green_gold_dog, array and permutation https://codeforces.com/contest/1867/probl 2024-03-21 Algorithm
binary-search 二分 二分本质上是一个线性的算法思维,只是比线性思维更进一步的是,二分思维需要提炼出题面中两个线性相关的变量,即单调变化的两个变量,从而采用二分加速检索。 【二分答案】Building an Aquarium https://codeforces.com/contest/1873/problem/E 题意:想象有一个二维平面,现在有一个数列,每一个数表示平面对应列的高度,现在要给这个平面在两边加 2024-03-21 Algorithm
data-structure 数据结构 数据结构由 数据 和 结构 两部分组成。我们主要讨论的是后者,即结构部分。 按照 逻辑结构 可以将其区分为 线性结构 和 非线性结构。 按照 物理结构 可以将其区分为 连续结构 和 分散结构。 【模板】双链表 https://www.acwing.com/problem/content/829/ 思路:用两个空结点作为起始状态的边界,避免所有边界讨论。 时间复杂度:插入、删除结点均 2024-03-21 Algorithm
a_template 板子 优雅的解法,少不了优雅的板子。 注:打 (∗)(*)(∗) 内容表示有待完善。 基础算法 二分 闭区间寻找左边界: ▶伪代码 12345678910111213bool findLeft(int x) { int l = 0, r = n - 1; while (l < 2024-03-21 Algorithm
dfs-and-similar 搜索 无论是深搜还是宽搜,都逃不掉图的思维。我们将搜索图建立起来之后,剩余的编码过程就会跃然纸上。 【dfs】机器人的运动范围 https://www.acwing.com/problem/content/22/ 1234567891011121314151617181920212223242526272829303132333435class Solution {public: int r 2024-03-21 Algorithm
divide-and-conquer 分治 将大问题转化为等价小问题进行求解。 【分治】随机排列 https://www.acwing.com/problem/content/5469/ 题意:给定一个 n 个数的全排列序列,并将其进行一定的对换,问是对换了 3n 次还是 7n+1 次 思路:可以发现对于两种情况,就对应对换次数的奇偶性。当 n 为奇数:3n 为奇数,7n+1 为偶数;当 n 为偶数:3n 为偶数,7n+1 为奇数。 2024-03-21 Algorithm
dp 动态规划 动态规划分为被动转移和主动转移,而其根本在于状态表示和状态转移。如何完整表示所有状态?如何不重不漏划分子集从而进行状态转移? 【递推】反转字符串 https://www.acwing.com/problem/content/5574/ 题意:给定 n 个字符串,每一个字符串对应一个代价 wiw_iwi,现在需要对这 n 个字符串进行可能的翻转操作使得最终的 n 个字符串呈现字典序上 2024-03-21 Algorithm