摘要: 例题https://www.luogu.com.cn/problem/P1339 朴素dijkstra (邻接表) dijkstra 正确性来自于贪心 也就是st数组内的数(dist) 必须逐渐变大这样才能保证后面的数更新的时候,当前的第三边dist[t]都是最小值 [详见](https://www 阅读全文
posted @ 2024-02-29 10:55 blind5883 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 新的排版 有点时间补一下这玩意吧 首先先说明RMQ是一类问题, 指 区间最大最小值, 而ST表是解解决RMQ问题的一把手术刀 (手术刀, 锋利但不通用) 作用 O(logn)的预处理 O(1)的区间最大值查询 不可以更改区间数值 原理 原理是倍增 我们将设f[i][j]是从i处向外2^j格里面的最大 阅读全文
posted @ 2023-11-30 17:16 blind5883 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 矩阵 顾名思义就是一个小破方阵 类似这样 0 0 1 1 0 1 0 1 0 1 1 1 0 0 0 0 这就是一个四行四列的矩阵, 矩阵包含三个信息, 长度, 宽度, 数值 数值就是矩阵里每一位上的数值, 通常用一个数值来存 为了方便使用我们常写成结构体形式 定义 struct Mat { int 阅读全文
posted @ 2023-11-19 08:58 blind5883 阅读(16) 评论(0) 推荐(0) 编辑
摘要: /* "数学的恐怖qwq" 想了半天终于明白了, 这里尽量通俗的写出来 扩展欧几里得算法有很多版本 这里写两个, 选择喜欢的使用 扩欧可以解决两项未知解, 具体原理来自裴蜀定理 裴蜀定理:设 a,b 是不全为零的整数, 则存在整数 x,y, 使得 ax+by=gcd(a,b). 而扩欧就可以在求出g 阅读全文
posted @ 2023-11-19 08:57 blind5883 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数 定义法 定义法求欧拉函数是O(sqrt(n))的时间复杂度 只可以求单个数的欧拉函数, /* 欧拉函数φ的定义, φ(i)表示从[1, i]之间和i互质的数量(a和b互质即gcd(a, b) == 1) 欧拉函数是积性函数, 例如a, b都为质数, 那么φ(a*b) = φ(a) * φ( 阅读全文
posted @ 2023-11-19 08:56 blind5883 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 龟速乘和快速乘都是为了防止模数大于int, 导致爆long long的情况 关于O(1)快速乘和关于其特判的原因 - :Dra - 洛谷博客 (luogu.com.cn) 快速幂(待补) 原理 利用二进制的思想, 把a的k次幂中的k变成一个二进制数 然后根据二进制数的每一位1把a的k次幂求出来 例如 阅读全文
posted @ 2023-11-12 17:34 blind5883 阅读(35) 评论(0) 推荐(0) 编辑
摘要: /* "爆int, 爆int, 你就会爆int了是吧" 还是挺难的一道题 具体思路就是通过求出b1的所有约数, 然后看看其中有几个满足gcd(a0, x) == a1 && lcm(b0, x) == b1的数x 通过上一题其实可以求出来, 在int范围内一个数的约数数量最多只有1600个 lcm可 阅读全文
posted @ 2023-11-10 08:49 blind5883 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 洛谷P1268 树的重量 题目链接 第一次用博客园啊, 写的不好请见谅; 下面说说题目 题目让求这几个点为叶节点形成的树的边权和, 但是我们可以抽象一下, 看成是在给定两个点的线段上不断加线段, 使其成为一棵树. 这样说可能不好懂, 见下图 图中的圆圈是叶节点 题目就是求以这几个点为叶节点的树(设为E)的最小边权和 为什么是 阅读全文
posted @ 2023-11-07 07:58 blind5883 阅读(22) 评论(0) 推荐(0) 编辑