摘要: 定一移一 很多双变量情况,可以先固定一个,然后变化另一起,防止双变换带来的不确定,与时间上的复杂。 二分答案 这也是固定双变量问题的好方法,而时间复杂度只增加的一个 \(\operatorname O(\log n)\)。没事就想想二分答案。 二分答案可以固定一层限制,如选的点等等。大小的限制等等。 阅读全文
posted @ 2025-11-04 21:48 blind5883 阅读(10) 评论(0) 推荐(0)
摘要: 离散化就是把有限数量但范围很大数据,如果不考虑数值大小,只关注相对顺序, 那么可以映射到一个小范围去 分为两种,保序离散化和无序离散化 无序离散化适用于只关注数据本身,而不关注它们顺序的离散化 保序离散化即保证离散化后的数据依旧符合原先顺序不变。 保序离散化需要另开一个数组(vector),来方便进 阅读全文
posted @ 2025-10-28 16:06 blind5883 阅读(4) 评论(0) 推荐(0)
摘要: 二分查询与应用的二分验证答案。 封左,即在一堆符合条件的数里面缩小右边界,最后选一个最靠左的。封右同理。 即封左减右和封右减左。 注意,如果在序列中找不到这个数,那么封左会找到大于它的靠左的数(最后是 \(l + 1\)),同理封右可以找到小于它的最大数。你可以找数据试一试。规避情况即可。 封左 i 阅读全文
posted @ 2025-10-28 16:06 blind5883 阅读(6) 评论(0) 推荐(0)
摘要: 原始字符串(Raw String Literals) C++ 11特性 一种所见即所得的东西,可以完美返回你想要的字符串,包括换行等等 大体长这样 R"()" 使用方式如 string k = R"(asdfasd sd gf a)"; cout << k << endl; 输出 asdfasd s 阅读全文
posted @ 2025-10-17 20:03 blind5883 阅读(12) 评论(0) 推荐(0)
摘要: 上取整 对于上取整,有 \(\lceil \frac a b \rceil = \lfloor \frac {(a + b - 1)} {b} \rfloor\),即 ceil(1.0 * a / b) = (a + b - 1) / b。 上取整的本质就是:余数不为 \(0\),则结果加 \(1\ 阅读全文
posted @ 2025-10-15 20:21 blind5883 阅读(14) 评论(0) 推荐(0)
摘要: 对于任意整数 \(a,b\),一定存在非全为零的整数 \(x,y\) 使得 \[ax + by = \gcd(a, b) \]即 $$ax + by = d$$ 证明 裴蜀定理的证明是构造性的(由此可见,这东西的发现是多么伟大而困难的存在),假设 \(a = k_1d, \quad b = k_2d 阅读全文
posted @ 2025-10-01 19:31 blind5883 阅读(17) 评论(0) 推荐(0)
摘要: 我们知道,两个数的最大公约数可以用过辗转相除法获得,而两个数的最小公倍数可以通过最大公约数求出。即: \[\operatorname {lcm}(a,b) = ab \div \gcd(a, b) \]证明:设 \(a = k_1 d,\; b = k_2 d,\; d = \gcd(a,b)\), 阅读全文
posted @ 2025-10-01 16:01 blind5883 阅读(30) 评论(0) 推荐(0)
摘要: 重新理解线性筛, 推荐文章 中心思想, 每个合数都被他的最小质因数筛去。 合数 \(u = i \times p\),\(p\) 是它的最小质因数,\(u\) 是被 \(i \times p\) 筛去的,\(i\) 一定小于 \(u\),那么在算法运行到 \(u\) 之前,\(u\) 一定会被标记。 阅读全文
posted @ 2025-09-28 21:13 blind5883 阅读(8) 评论(0) 推荐(0)
摘要: 原题链接:Problem - 1385D - Codeforces 这是一道好题,本质上是使用动态规划(分治)去处理每个区间。DP 本身是很简单的,难点在于范围处理和时间的估计。本身是没什么难度的,只是范围有些复杂,容易算错,这时候就建议列表去发现规律了。 列表是一种快速,不易错的数据统筹方式,可以 阅读全文
posted @ 2025-09-26 21:29 blind5883 阅读(8) 评论(0) 推荐(0)
摘要: 原题链接:P4141 消失之物 - 洛谷 一道好题,这题的难点在于如何处理不选 \(i\) 物品。 一种思想是我对原序列做正反两次 01 背包,通过 \(f_{i - 1,k}\) 和 \(g_{i + 1,j - k}\) 把 \(i\) 给跳过去,那么有 \(cnt(i,j)= \sum_{k 阅读全文
posted @ 2025-09-26 20:00 blind5883 阅读(13) 评论(0) 推荐(0)