08 2024 档案
摘要:快速幂 幂运算的本质是做乘法,对于 ,其核心思想是将指数 进行二进制分解,然后对 的每一位进行进行乘法,时间复杂度为 。 ll quick_power(ll a, ll b, ll p) { ll ans = 1 % p; for (;
阅读全文
摘要:素数 定义 一个大于 的自然数,除了 和它自身外,不能整除其他自然数的数。 性质 素数有无穷多个 存在任意长的连续数,其中所有数都是合数,即相邻素数之间的间隔任意大。 随着 的增大素数越来越稀疏。 哥德巴赫猜想 任意大于 的正偶数都可以写成两个素数的和
阅读全文
摘要:背包DP是线性DP中一种特殊的DP。 01背包 最基础的背包,有 件物品,背包容量为 ,每件物品只有一件。可以使用空间优化,一般是原地滚动,此时注意容量需要从后往前更新,否则会一个状态更新多次。时间复杂度为 。 核心代码 void solve() { int
阅读全文
摘要:状压DP(Bit mask DP)将状态压缩为二进制表示,用于处理状态复杂的问题。主要分为一维和二维两种类型。 一维状压DP 最经典的是求最短哈密顿路径,对应 个结点的带权无向图,暴力枚举所有情况的时间复杂度为 ,但是我们思考一下,到达某个顶点时,需要记录在这之前已经走过
阅读全文