Loading

摘要: 矩阵快速幂 矩阵乘法 + 快速幂 矩阵加法: 定义矩阵 \(C=A+B\)。 \(C_{i,j}=A_{i,j}+B_{i,j}\)。 矩阵乘法: 计算两个矩阵的乘法。\(n \times m\) 阶的矩阵 \(A\) 乘以 \(m \times k\) 阶的矩阵 \(B\) 得到的矩阵 \(C\) 阅读全文
posted @ 2025-12-12 23:24 Seqfrel 阅读(32) 评论(0) 推荐(0)
摘要: 龟速乘与快速幂 n&1: 取n的二进制最末位 n>>1: 右移一位,相当于去掉n的二进制最末尾(相当于n/2) n<<1 相当于n*2 if(n%2==1) 可以写成if((n&1)==1)或if(n&1) 位运算比 +-*/ 更快 龟速乘 求 $ (a\times b) \bmod p$。 例: 阅读全文
posted @ 2025-12-12 23:20 Seqfrel 阅读(3) 评论(0) 推荐(0)
摘要: 二分分为二分查找和二分答案。 二分查找 每次查询或询问的结果: 找到,结束; 找不到,答案所在范围缩小一半。如果小了就查找大的那一半,如果大了就查找小的那一半。 查找次数为对数级。 前提:序列有序。 二分查找可以解决的问题: 大于等于 \(x\) 的最小值是哪个?大于等于 \(x\) 的有多少个? 阅读全文
posted @ 2025-12-12 23:17 Seqfrel 阅读(34) 评论(0) 推荐(0)
摘要: 题目大意 给定一个矩阵,每次选择一个比它所有“邻居”都大的项,不断减一直到它不满足以上条件,求修改完后的矩阵。 “邻居”的定义是左右相邻或上下相邻,不包括对角线的情况。 解题思路 我们首先要明白一点,别看题目中讲要找坐标小的先修改,实际上修改顺序是不重要的。 而要明白这一点我们又要明白另一点,那就是 阅读全文
posted @ 2025-12-12 23:09 Seqfrel 阅读(9) 评论(0) 推荐(0)
摘要: 题目大意 有 \(n\) 天 \(m\) 个任务,每个任务需要一台机器用一天时间完成,每个任务最多推迟 \(d\) 天完成。给定 \(m\) 个任务提交的时间,求最少需要几台机器才能满足所有任务。 解题思路 解决此题,需要想清楚两个性质: 性质一:所需机器数量是单调的 这个性质不难理解,如果 \(x 阅读全文
posted @ 2025-12-12 23:08 Seqfrel 阅读(3) 评论(0) 推荐(0)
摘要: 一、强连通分量 强连通:有向图 G 强连通是指 G 中任意两个节点相通。 强连通分量(Strongly Connected Componets, SCC),是指一个有向图中的强连通子图。 用处:可以把 SCC 看作一个点,构造新图解决问题。 二、Tarjan Tarjan 是一种用来求强连通分量的算 阅读全文
posted @ 2025-12-12 23:07 Seqfrel 阅读(48) 评论(0) 推荐(0)
摘要: 该算法可以离线求最近公共祖先,大幅节省时间复杂度(\(O(n \log n)\)->\(O(n+m)\))。 缺点是如果题目要求强制在线那么就用不了了。 具体实现是这样的:把原树用双向边存起来,然后把每一对要求 LCA 的两个点在一个新图上存一个双向边(称为查询边)。 对原图进行一次 DFS 遍历, 阅读全文
posted @ 2025-12-12 23:05 Seqfrel 阅读(16) 评论(0) 推荐(0)
摘要: 1. 海拔预处理 因为小 A 和小 B 开车涉及选择最短距离的问题,所以我们需要把他们两个开到每个城市要选择的最短距离预处理出来。 朴素做法用 \(O(n^2)\) 打擂台求出最近和第二近的城市,但显然过不了。我们可以这么做: 读入时存储每个城市的高度和编号。 读入完成后按照高度排序。此时与排序后的 阅读全文
posted @ 2025-12-12 23:03 Seqfrel 阅读(25) 评论(0) 推荐(0)
摘要: 该算法可以两次 DFS 求出以每个节点为根所得树的深度。 算法实现 朴素做法:枚举每个节点作根的情况进行 DFS,\(O(n^2)\)。 要想优化,就必须避免改变树的结构。我们发现,子树 \(u\) 的节点在以 \(u\) 为根的大树中到根 \(u\) 的距离都减少了一,其他节点因为要经过 \(u\ 阅读全文
posted @ 2025-12-12 23:02 Seqfrel 阅读(28) 评论(0) 推荐(1)
摘要: Luogu P1896 [SCOI2005] 互不侵犯 因为一行的状态只有放与不放国王,所以可以用 \(0\) 和 \(1\) 表示,然后就可以把一行的状态压缩成一个 \(9\) 位二进制数表示,状态个数为 \(2^9\)。随后定义状态 \(f(i,j,s)\) 表示前 \(i\) 行放 \(j\) 阅读全文
posted @ 2025-12-12 23:00 Seqfrel 阅读(39) 评论(0) 推荐(1)