摘要: 矩阵基本操作 将一些元素排列成若干行,每行放上相同数量的元素,就是一个矩阵 (Matrix) 。一个矩阵 \(A\) 从左上角数的第 \(i\) 行第 \(j\) 列的数称作第 \(i , j\) 项,记作 \(A_{i, j}\) 或 \(A_{i j}\) 。对于 \(m = n\) 的矩阵我们 阅读全文
posted @ 2025-07-21 16:31 ask_silently 阅读(53) 评论(0) 推荐(0)
摘要: 倍增 奇妙运用:求二进制下 \(1\) 的总个数,运用倍增的思想,先求出每两个之间的 \(1\) 的个数,然后是每四个最后到 \(64\) 或 \(32\) 位(当然可以用 STL 中的 __builtin_popcount)。 int popcount(int x){ x=(x&0x5555555 阅读全文
posted @ 2025-07-17 15:24 ask_silently 阅读(20) 评论(0) 推荐(0)
摘要: 适用范围 以现在所见,处理类似下取整求和的时候可以用到,时间复杂度一般为 \(O(\sqrt{n})\)。 例题 \(1\) P2261 余数求和 发现 \(\left\lfloor\dfrac{k}{i}\right\rfloor\) 至多只有 \(2 \times \sqrt{k}\) 种取值, 阅读全文
posted @ 2025-07-10 07:54 ask_silently 阅读(31) 评论(0) 推荐(0)
摘要: 无向图连通分量 定义 在无向连通图中,若删去一个节点 \(x\) 及所有与 \(x\) 关联的边后,该图被分为两个不连通的子图,则节点 \(x\) 称为割点。 在无向连通图中,若删去一条边 \(e\) 后,该图被分为两个不连通的子图,则该边 \(e\) 称为割边或桥。 而在无向图中,其割边与割点即为 阅读全文
posted @ 2025-06-30 21:44 ask_silently 阅读(109) 评论(0) 推荐(0)
摘要: 题目传送门 题解 Solution \(1\) 考虑有 \(s\) 个源点与 \(t\) 个汇点,求这些源点与汇点两两之间的最小最短路距离的做法。显然可以建一个超级源点和超级汇点。 现在问题转化成如何把这些点分为若干组,使任意两个点都被分为不同的组一次。 考虑二进制分组,具体地,枚举每个二进制位,当 阅读全文
posted @ 2025-06-06 19:00 ask_silently 阅读(29) 评论(0) 推荐(0)
摘要: 如果新的 dp 值依赖上一个 dp 值来设值的话,可以设第一个 dp 值为 \(x\),转移一圈之后推 \(x\)。如 例题。 如果 dp 值是类似取 \(\min\) 或取 \(\max\) 的形式,可以放入优先队列里从大向小或从小向大转移。如 例题。 阅读全文
posted @ 2025-06-06 11:16 ask_silently 阅读(40) 评论(0) 推荐(0)
摘要: 题目传送门 题解 这道题是笔者第一次自己切掉一道非类模板的紫,虽然耗费一周在考场上根本写不出来(还是太菜了 这道题在考场尝试暴力写第一档部分分,但是暴力并不好写,挂完了。 上文是吐槽,下文开始解题。 观察到这是一道计数题,不是直接组合就是 dp,发现对于不同的关键边答案不同,似乎不能直接组合,图又是 阅读全文
posted @ 2025-06-05 21:56 ask_silently 阅读(139) 评论(0) 推荐(0)
摘要: 原题传送门 Solution 1 考虑 \(O(nq)\) 的解法。 性质 \(1\):选择长度恰好等于 \(k\) 的区间 \(Lca\) 一定最优。 证明:新加入一个点,\(dep_{lca}\) 不增,证毕。 所以对于每次询问,可以枚举左端点,就可以同时固定右端点。使用 \(st\) 表可以维 阅读全文
posted @ 2025-05-25 20:59 ask_silently 阅读(148) 评论(0) 推荐(0)
摘要: 适用范围 整体二分是一种离线算法,当询问数较多但均具有单调性(即 \(x\) 合法则 \([1,x]\) 或 \([x,n]\) 均合法)时,设判断 \(x\) 是否合法的时间复杂度为 \(p\),则在不考虑预处理的情况下,所有询问能做到 \(O(q \log n \times p)\),一般 \( 阅读全文
posted @ 2025-05-18 17:23 ask_silently 阅读(173) 评论(0) 推荐(0)
摘要: 题目传送门 思路分析 为简便描述,下文中 \(s1\) 是第一个字符串,\(s2\) 是第二个字符串。 发现我们需要替换相同句子部分,所以我们必须知道哪几个位置相同,于是就想到哈希来判断。先求出 \(s2\) 的哈希值,然后再逐位求 \(s1\) 中每 \(|s2|\) 个长度的字符串的哈希值,可以 阅读全文
posted @ 2025-03-29 10:54 ask_silently 阅读(53) 评论(0) 推荐(0)