摘要:
分成线段/直线两种 直线 自己取最值一定在一个区间里面 先比较同一段的中间值,让更优的占据这个点,之后再下传,这样每次都只下传一条直线了 查询如果单点查询,就向下然后把永久化标记都算一遍 区间查询直接找两个端点即可 合并时每条线段最多到底,时间复杂度 \(O(n\log n)\) 其余皆 \(O(\ 阅读全文
posted @ 2025-11-28 09:46
huhangqi
阅读(1)
评论(0)
推荐(0)
摘要:
决策单调性,通过决策点的单调性进行处理,从而优化 dp 的时间复杂度 对于这种题目,可以分为几个过程来完成题目: 敲暴力 观察是否有其它的优化方式 分析最优决策点位置/打表 得到如何使用决策单调性优化 石子合并 区间合并问题基本转移如下: \[ f_{l,r}=\min f_{l,k}+f_{k+1 阅读全文
posted @ 2025-11-28 09:44
huhangqi
阅读(1)
评论(0)
推荐(0)
摘要:
矩阵乘法方式,左边的行乘上右边的列,最终答案的行数与左边相等,列数与右边相等 左行右列 矩阵乘法必须在左矩阵列数与右矩阵行数相同时才可以进行 矩阵乘法满足结合律,不满足一般的交换律。 板子: struct MT{ int c[7][7],n,m; MT(){ n=m=0; memset(c,0x3f 阅读全文
posted @ 2025-11-28 09:42
huhangqi
阅读(2)
评论(0)
推荐(0)
摘要:
常规莫队 莫队用来处理一系列离线问题,可以在较短时间内移动一步区间的操作可以使用莫队来解决。 时间复杂度 传统的莫队只需要解决区间上的问题,因此只包含左端点和右端点,一般是按照 \(\sqrt n\) 的块长,以 \(l\) 所在的块为第一关键字,以 \(r\) 为第二关键字。 这样在 \(O(1) 阅读全文
posted @ 2025-11-28 09:39
huhangqi
阅读(2)
评论(0)
推荐(0)
摘要:
反正就给自己看,那么就随便写写 吐槽一下CPP为什么这么迟才教二分图 一个图是二分图,那么这个图就一定可以分成两部分,这两部分的点一定不会与自己的只一部分直接相连 二分图的判断非常水,直接黑白染色就可以了 只要没有奇环(我tm打qihuan都比打jihuan要快)就可以了 然后就会有很多的板子题了 阅读全文
posted @ 2025-11-28 09:37
huhangqi
阅读(2)
评论(0)
推荐(0)
摘要:
点分治就是在树上拿点分治 但是只能按照某个点对一个子树进行处理,所以一般处理路径问题 主要是找到重心,然后一直向下递归 找中心有个比较吊的写法,直接拿上一次这个点得到的大小作为子树大小求重心,正确性不会证明,直接用吧。 贴个代码: #include<bits/stdc++.h> using name 阅读全文
posted @ 2025-11-28 09:36
huhangqi
阅读(1)
评论(0)
推荐(0)
摘要:
定义 差分约束系统 是一种特殊的 \(n\) 元一次不等式组,它包含 \(n\) 个变量 \(x_1,x_2,...x_n\) 以及 \(m\) 个约束条件,每个约束条件是由两个其中的变量做差构成的,形如 \(x_i-x_j\le c_k\),其中 \(1\le i,j\le n,i\not=j,1 阅读全文
posted @ 2025-11-28 09:31
huhangqi
阅读(0)
评论(0)
推荐(0)
摘要:
首先讲讲 KMP 是怎么实现的。 题目: 题目: 求模式串在待匹配串中的出现次数。 明显可以直接暴力枚举,首先确定左端点,然后向右跑即可 考虑优化这一过程 我们考虑在整个字符串中匹配以某个字符为末尾的最长匹配 那么我们直接跑过去,如果完全匹配,最优情况下肯定是 \(O(n)\) 的 但是如果不是最优 阅读全文
posted @ 2025-11-28 09:25
huhangqi
阅读(3)
评论(0)
推荐(0)
摘要:
CSP-S T3 竟然考AC自动机! CPP 居然没教过,太坏了 要建AC自动机,首先需要建一个 trie 树 然后核心就是在于 build,我们用 bfs 去跑 由于需要多次进行匹配,我们找到一个border最长的,显然一个的border是父亲的对应的儿子过去 反正最后挺好弄的 代码: void 阅读全文
posted @ 2025-11-28 09:23
huhangqi
阅读(1)
评论(0)
推荐(0)

浙公网安备 33010602011771号