摘要: :::epigraph[——浅谈生成函数(GF)] 被 \(\mathcal O(1)\) 场生成函数 G 题坑惨了,必须要认真学习一下。巧合的是,422G 的前正好 \(200\) 场的 222H 也是生成函数入门。那必须致敬一下了。 ::: 可能需要做的题目:ABC422G,ABC320H,AB 阅读全文
posted @ 2026-10-08 21:57 Ivan422 阅读(33) 评论(0) 推荐(0)
摘要: 序 本文是一名绝望的初中生在学习贪心(骗你的这篇文章一半的篇幅都与编程没有太大的关系)的时候试图理解拟阵的随笔,可能表述不够专业与准确,见谅。我认为本文在没有学习过任何高中的数学知识之前还是比较好理解的,但是如果你已经有了高中的数学基础,可以跳过一些非必要的部分。 对于异或空间线性基,作者之前学过一 阅读全文
posted @ 2026-10-08 21:55 Ivan422 阅读(9) 评论(0) 推荐(0)
摘要: 定义 虚树主要用于优化树形 dp。 每一次我们树形 dp 需要使用 \(k(\sum k \leq 10^5)\) 个点,设他们为关键节点。 我们的树是 \(n(\leq 10^5)\) 个点的。 每一次查询 \((\leq 10^5)\),要是我们直接 dp,那么复杂度为 \(\mathcal O 阅读全文
posted @ 2026-10-08 21:48 Ivan422 阅读(6) 评论(0) 推荐(0)
摘要: 考虑求轻边数,怎么求? 首先所有的左右端点颜色 \(=\) 的贡献改成 $\neq $。 然后修改 pushdown,让赋值为重边的操作贡献变成 \(\to 0\)。同样的操作在 build 里也要有。 https://www.luogu.com.cn/article/a6pyem41 阅读全文
posted @ 2026-10-08 21:46 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 今天做到了 ABC402 G,学习一下哈。 【SX/NOI-】类欧 类欧的名字是因为这个算法类似于辗转相除,其实就是复杂度计算而已。 其他没什么关系了。 这个算法主要是求在一条直线下的整点有多少个。 按照例题,它当然可以用来求: \[f(a,b,c,n)=\sum_{i=0}^n\lfloor \f 阅读全文
posted @ 2026-10-08 21:41 Ivan422 阅读(5) 评论(0) 推荐(0)
摘要: 问题描述 因为对菠萝(polo)忍无可忍,景景(dzd)使用圣剑在地上划出了许多纵横交错的沟壑来泄愤。这些沟壑都严格与 \(x\) 轴平行或垂直。 菠萝嘲笑了景景无聊的行为,然后做了一件更加无聊的事。他蹲下来数这些沟壑的条数。 数着数着,菠萝意识到一个问题,那就是因为圣剑的威力太大,划出的沟壑太多, 阅读全文
posted @ 2026-10-08 21:40 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: 强连通分量 \(\tt SCC\) 图变为无向图可以互相到达的点集是弱连通分量。 任意两点可以互相可达的一个点集是强联通分量。 Tarjan 算法 边 dfs 边能形成 \(\tt SCC\) 就切分。 具体的: 要是没有访问过,\(dfn_v=0\),我们继续搜下去,我们要更新一个追溯值 \(lo 阅读全文
posted @ 2026-10-08 21:38 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 定义 通过所有边的路径(回路)。 有向图的判定 要是 \({\tt ind}_i+1={\tt outd}_i\),就是起点,要是 \({\tt ind}_i\neq{\tt outd}_i\),那么这个点不能作为中间点。 显然一个欧拉路不能作为中间点的数量 \(z\) 必须为 \(0\) 或 \( 阅读全文
posted @ 2026-10-08 21:33 Ivan422 阅读(4) 评论(0) 推荐(0)
摘要: 突然不知道为什么要学线性基。 用处 求一个数能不能被 \(\{a_i\}\) 异或出来。 求 \(\{a_i\}\) 能异或出来的第 \(k\) 大值,\(\max\) 和 \(\min\)。 我们设置这个线性基为 \(\{l_i\}\),那么有: 原序列 \(\{a_i\}\) 可以通过 \(\{ 阅读全文
posted @ 2026-10-08 21:32 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 主体思想 把多个查询一起解决。 适合解决区间 \(kth\) 问题。 全局第 \(k\) 小 可以直接排序。 二分值域,维护 \(\leq mid\) 数个数 把所有询问放在一起二分 (整体二分)。 执行 计算 solve(l,r),询问中的答案都在 \([l,r]\) 内。 猜测答案 \(mid= 阅读全文
posted @ 2026-10-08 21:29 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 首先我们看原题面文件,有重要的东西。 这句话的意思是:在一个 \(2\times 2\) 的格子中,至少有一个是障碍物。 那么我们的棋盘空格数就从预期的 \(wh\) 降到了 \(\frac{wh}{4}\),这样我们动态开点的访问记录数组就从 \(w^3h^3\) 降到了 \(\frac{w^3h 阅读全文
posted @ 2026-10-08 21:27 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: \(\tt 2025 / 03 / 01\) 共 \(2\) 场比赛。 不知名 \(\tt OJ\) 周练 \(10\) 难度:橙蓝蓝蓝。 分数:\(100+\ 40+100+\ 60\)。 预期:\(100+\ 70+100+\ 60\)。 排名:\(1^{st}\)。 算法:直接做 / SCC 阅读全文
posted @ 2026-10-08 21:24 Ivan422 阅读(5) 评论(0) 推荐(0)
摘要: 考虑维护前缀和。 首先,我们按照题意即可求出初始温度 \(tpr\)。 接着,在每一次更新后,我们考虑动态维护当前点 \(n\) 的温度。 首先是左端点。 我们首先要把原先的温度记录清空,\(tpr\to tpr-f(d_l)\),这里 \(f(x)\) 表示高度变化的温度贡献。 然后加回去,\(t 阅读全文
posted @ 2026-10-08 21:24 Ivan422 阅读(1) 评论(0) 推荐(0)
摘要: 稍微有点绕。 我们注意到一次修改 WA 改为 AC 是有可能出现 WWA 这种修改一个而出现可以修改的另一个字符串的情况。 但是我们可以倒着修改,这样修改之后不会出现其他在后面需要匹配的新字符串,而倒着修改,就算出现了新字符串,也会在接下来的修改中被覆盖。 具体手玩一下也可以会。 #include< 阅读全文
posted @ 2026-10-08 21:22 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 不是哥们这是怎么上 D 题的,史上最简单。 直接括号匹配即可。 具体维护如下: 对于所有左括号((,[ 和 <)直接加入符号栈。 要是出现右括号: 出现 ) 则检查当前栈顶是否为 (,否则无法匹配,匹配成功则弹出栈顶。 同理,] 需要检查栈顶为 [,> 需要检查栈顶为 <。 匹配完成,要是栈中还有待 阅读全文
posted @ 2026-10-08 21:21 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: 唉唐了没做出来。 考虑使用回文最短路。 先将 \((i,j)\) 相邻或 \((i,i)\) 相等加入队列。 然后通过让 \(i\) 跑反边到前驱,\(j\) 跑正边到后继,可以得出一条满足回文的最短路。 具体维护如下: 加入 \((i,i)\) 与有边的 \((i,j)\),这些状态一定是回文的。 阅读全文
posted @ 2026-10-08 21:11 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 什么是 LCT LCT(Link-Cut-Tree)是一种用于解决动态树问题的算法。 比如说我们需要维护一颗有边权的树: 维护路径权值和。 修改路径上权值。 修改子树边权。 查询子树边权和。 断开一条边保证还是树。 前四个可以轻松用树链剖分维护。 但是最后一个问题的出现,让问题变成了动态树问题,考虑 阅读全文
posted @ 2026-10-08 21:08 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: 整个二分图,就是一个不断修改的 Romatic 史。 情人节特辑?或许是吧。 什么是二分图最大匹配 左边 \(n\) 个点,右边 \(m\) 个点,相连 \(e\) 条边。 我们要让左右 ♥ 两 ♥ 两 ♥ 匹 ♥ 配 ♥,求最大 ♥ 匹 ♥ 配 ♥ 对 ♥ 数。 算 ♥ 法 ♥ 演 ♥ 示 在这里 阅读全文
posted @ 2026-10-08 21:06 Ivan422 阅读(4) 评论(0) 推荐(0)
摘要: 唉很久以前初学状态压缩 DP 留下的巨坑,填填。 什么是插头 DP 基于连通性状态压缩的动态规划问题。 %%% cdq 巨佬。 一般是求回路数量的。 什么是插头 如图。 一个蓝色方格有四个插头,就是指向相邻节点的插头。 我们求答案就是通过这些插头求的。 例如回路,我们就可以通过处理这些插头,让他们连 阅读全文
posted @ 2026-10-08 21:02 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: \(\tt ABC392\) 精巧玲珑的题,让人很舒服。 除了费用流。 Ivan422 唐又唐又唐,F 题细节打错最终遗憾离场。 \(\tt A\ \color{FE4C61} \tiny RM\) 《重生之 \(2\) 只高桥被毒死了》 唐题,大力 if 即可。 string s1,s2; sig 阅读全文
posted @ 2026-10-08 21:01 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 谨以此纪念我这个号第一次打入门赛。 题开序顺:\(\tt HGEDBACF\)。 大体是倒着做,然后做时间代价为 \(0\) 的出锅题。 也是 \(1\ \tt h\) 快速 AK。 感觉难了不少呢。 唉,打不回前几次 Ivan422 那个号的 RK6 了。 最终排名 RK56。 省流 红橙黄红红黄 阅读全文
posted @ 2026-10-08 20:53 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 彩蛋: \(\tt T1\) 排队 题目大意:一群人排队,男男间隔 \(a\),男女间隔 \(b\),女女间隔 \(c\),男生打饭要 \(d\) 的单位时间,女生 \(e\) 的单位时间。 队列长 \(n\) 米,问可能的排队方式的排队时间总和是多少,对 \(10^9+7\) 取模。 显然看出一个 阅读全文
posted @ 2026-10-08 20:51 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: 题目 求树上一个点到其他点距离之和模 \(10^9+7\)。 即设 \(\operatorname{dis}(u,v)\) 为两点距离,求 \(f_u=\sum_{v=1}^n \operatorname{dis}(u,v) \bmod 10^9+7\)。 \(1\leq n\leq 10^5\)。 阅读全文
posted @ 2026-10-08 20:49 Ivan422 阅读(4) 评论(0) 推荐(0)
摘要: 最短路。 但是有点难。 我们注意到两个发射位置一定有一个交点。 然后,我们要是在其他点发射,再走一下发射,其实就等同于在交点发射传送门。 所以,我们可以发现:在一个点,射出传送门,一定是比走走再射是更优的。 于是,我们就把问题转化成: 可走一步。 可以发射传送门,然后进入一个传送门走到另一个传送门。 阅读全文
posted @ 2026-10-08 20:47 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 前言 何为树剖? 树链剖分,就是通过特定的方式,把树分为多条链,以维护特定的答案。 一般的树链剖分,是钦定一个儿子为重儿子,即重链剖分。 前置芝士 建议先浅浅食用一下。 倍增法求 LCA(毕竟都是树上操作) 树上差分 线段树(要会 lazytag) (选)树形 dp(更好理解两个 dfs) 树上 d 阅读全文
posted @ 2026-10-08 20:44 Ivan422 阅读(4) 评论(0) 推荐(0)
摘要: 先来一波 Treap。 这个硬骨头我们看代码。 节点定义 struct node{ // An AVL node int son[2]; int val; int dat; int sz; int cnt; }a[NODE]; \(son_{0/1}\) 儿子。 \(val\) 节点值。 \(dat 阅读全文
posted @ 2026-10-08 20:33 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: 初始台地 复苏神庙 先出生。然后拿个 希卡石板。激活。出门。前面有 \(1\) 个木桶,砸了,苹果 or 木箭。\(2\) 个宝箱,老旧的衣服 \([1]\) + 老旧的裤子 \([1]\)。出门,开场动画。 开塔 向山下跑,捡 树枝 \([2]\),在右边拿 海拉鲁蘑菇 \(\times 2\), 阅读全文
posted @ 2026-10-08 20:31 Ivan422 阅读(4) 评论(0) 推荐(0)
摘要: 数独专题 \(\tt P1784\) 题意:简单的数独,随便写都能过。 题解:深搜。 我们使用 \(row,col,blk\) 分别记录行,列,宫格的占用情况。 别问为什么我英文错了 注意单坐标 \(r,c,b\) 数值的维护。 然后用 \(inNum\) 记录不用枚举的情况。 对于记录的情况看代码 阅读全文
posted @ 2026-10-08 20:29 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 更好的表述:https://www.luogu.com.cn/article/acf4low9 问题 长度为 \(n\) 的字符串 \(s\),找出所有回文子串的个数 / 最长长度。 这类字符串问题,常用 Manacher 算法。 解法 字符串哈希:\(\mathcal O(n\log n)\)。 阅读全文
posted @ 2026-10-08 20:26 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 前言 所谓 AC 自动机就是 KMP+Trie,不算很难。 问题 \(n\) 个模式串,\(1\) 个文本串,求多少个模式串在文本串中出现过。 我们发现,\(n=1\) 时这玩意就是个 KMP。 然后,我们可以对模式串建 Trie。 例子 例如,\(s=[\tt i, he, his, she, h 阅读全文
posted @ 2026-10-08 20:24 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 又发现了一道有趣的题。 我们发现这题让我们求最长非公共子序列。 我们先回忆最长公共子序列。 设 \(f_{i,j}\) 是分别处理到这两个位置的答案。 这时要是 \(a_i=b_j\),那么 \(f_{i,j}=\max(f_{i-1,j},f_{i,j-1},f_{i-1,j-1}+1)\)。 否 阅读全文
posted @ 2026-10-08 20:21 Ivan422 阅读(4) 评论(0) 推荐(0)
摘要: 题目有一个式子:\(\sum_{i=1}^n(a_i-b_i)^2\)。 我们拆一下,原式变为 \(\sum_{i=1}^n a_i^2-2a_ib_i+b_i^2\)。 再拆一次,得 \(\sum_{i=1}^n a_i^2 + \sum_{i=1}^n b_i^2 - 2\sum_{i=1}^n 阅读全文
posted @ 2026-10-08 20:19 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: 代码是我大号的,然后题解发到这里。 看到这道题,首先考虑暴力动态规划。 怎么做呢? 首先得有两维,\(i\) 和 \(j\),是两个字符串的处理指针。 然后,这题有个 \(k\) 记录子串,那我们就不能定义成 \(k\),冲突了,得改成 \(l\),记录的是分了几个子串。 接着,我们还需要一维,记录 阅读全文
posted @ 2026-10-08 20:15 Ivan422 阅读(5) 评论(0) 推荐(0)
摘要: 题面在此。 \(\tt 2024/12/18\) 思路 我们发现这道题的 \(20\) 分数据范围为 \(n,m,q\leq 10^3,w\leq 10^9\)。 考虑直接跑 \(\tt Kruskal\) 重构一下。 这样,就成了一颗 \(\tt MST\)。 直接爽飞 \(\mathcal O( 阅读全文
posted @ 2026-10-08 20:13 Ivan422 阅读(2) 评论(0) 推荐(0)
摘要: 初赛模拟卷 \(-1\)。 最终得分 \(55.5\),还有救。 因为我太弱了,所以只改第 \(1,2\) 大题。 错误题号及原因:\(1,2,3,4,7,9\)。 \(1.\) 考了弱智 \(OSI\),掌握不熟练。\(A\to C\)。 ‌OSI数据链路层的主要设备包括交换机、网桥、中继器和集线 阅读全文
posted @ 2026-10-08 20:10 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 初赛模拟卷 \(-3\)。 最终得分 \(75.5\),还有救。 错误题号及原因:\(4,7,8,9,17,19,21,22,24,28,39,41\)。 \(4.\) 计数器初始化为 \(1\),审题问题,加个 \(1\) 就过了。\(B\to C\)。 \(7.\) 问的是空间复杂度,求了时间复 阅读全文
posted @ 2026-10-08 20:09 Ivan422 阅读(3) 评论(0) 推荐(0)
摘要: 赛场上没写出无理数的求解,是基本功比较差,现在填一下坑。 首先,按照题意模拟出 \(\Delta\) 判别式的是否有解判定。再把当 \(\sqrt{\Delta}\) 为有理数的时候按照题意模拟即可。这样即可拿到 \(60\) 分。赛场上我太菜了,无理数部分处理的题意都没看懂,结果发现是模拟。无理数 阅读全文
posted @ 2026-10-08 19:36 Ivan422 阅读(7) 评论(0) 推荐(0)