摘要: 前置芝士:Trie 树,KMP算法。 概述 AC 自动机是建立在 Trie 树上的自动机,一般拥有两个步骤:构建 Trie 与构造失配指针。它可以解决多模式串匹配问题。 建立 首先,将模式串插入到 Trie 树中。然后,考虑字典树中的一个节点 \(u\),它的父节点为 \(fa\),\(fa\) 通 阅读全文
posted @ 2026-07-13 16:51 duchuyuanX 阅读(13) 评论(0) 推荐(0)
摘要: DFS 树,顾名思义,是一张图按 DFS 序遍历后形成的树。主要有 4 种边: 树边:每次由一个已遍历的点到达未遍历的点,就形成了一条树边。 反祖边:也叫做回边,指向该节点的祖先。 横叉边:搜索时遇到一个已访问的节点,但这个节点并不是该节点的祖先。 前向边:访问时遇到子树中的节点时形成的。 其中,树 阅读全文
posted @ 2026-05-30 11:56 duchuyuanX 阅读(14) 评论(0) 推荐(0)
摘要: 前置芝士:如下。 P9870 双序列拓展 给定初始序列 \(X,Y\),有 \(q\) 次询问,每次询问会修改 \(X,Y\) 中的一些值。你可以复制其中一些元素从而组成一个长度为 \(10^{100}\) 的序列 \(f,g\)。若存在一种方式使得 \(f_i<g_i\) 或 \(f_i>g_i\ 阅读全文
posted @ 2026-05-23 16:29 duchuyuanX 阅读(18) 评论(0) 推荐(0)
摘要: 本文的开始,通过一道模板题来认识快速沃尔什变换。 题面 P4717 【模板】快速莫比乌斯 / 沃尔什变换 (FMT / FWT) 给定 \(A,B\),求 \(\sum_{i|j=k}A_i\times B_j,\sum_{i\&j=k}A_i\times B_j,\sum_{i\oplus j=k 阅读全文
posted @ 2026-05-18 21:05 duchuyuanX 阅读(14) 评论(0) 推荐(0)
摘要: 算法简介 树上差分,类比序列差分。序列差分在差分 \([l,r]\) 时,是将差分数组 \(diff_l+c,diff_{r+1}-c\),\(c\) 为加上的数。 树上差分则是对 \(u\) 到 \(v\) 的路径进行修改操作,分为点差分和边差分两种。点差分即将两个端点及其 \(lca\) 和 \ 阅读全文
posted @ 2026-05-17 20:22 duchuyuanX 阅读(24) 评论(0) 推荐(0)
摘要: 考虑在高桥赢一局后直接结束游戏,于是就可以转换成求游戏继续的方案数,再用 \(nm\) 去减即可。 显然,高桥能胜仅当其余两人出法相同,且高桥能赢。那么考虑计算贡献。构造贡献系数矩阵,令矩阵第一列代表石头,第二列代表剪刀,第三列代表布。矩阵的行同理。则可以得到如下矩阵: \[\begin{bmatr 阅读全文
posted @ 2026-05-16 21:23 duchuyuanX 阅读(20) 评论(0) 推荐(0)
摘要: 简介 树上启发式合并,主要用于解决要求每个子树内信息的一种暴力优化离线算法,将 \(O(n^2)\) 的暴力(树形 DP 形成 \(O(n)\),再清空又是 \(O(n)\),总计 \(O(n^2)\)),转换为了 \(O(n \log n)\) 的算法。主要思想是暴力枚举轻儿子所在子树的答案时清空 阅读全文
posted @ 2026-05-16 15:59 duchuyuanX 阅读(25) 评论(0) 推荐(0)