随笔分类 - 题解
摘要:题目传送门 前置知识 树状数组 | 序列分治 解法 考虑序列分治,设因 \(\max\) 和 \(\min\) 形成的分节点先后为 \(k_{1},k_{2}\)。 对于 \(j \in (mid,k_{1}]\),等价于统计满足 \(\max\limits_{h=i}^{mid} \{ a_{h}
        阅读全文
                
摘要:题目传送门 前置知识 李超线段树 | 扫描线 解法 自边缘处起跳等价于找到与 \(x=x_{2}\) 相交的直线中最大的 \(y \le y_{2}\)。普通的李超线段树不支持删除操作,直接套用貌似很难处理。 观察到若能从 \((x_{1},y_{1}) \to (x_{2},y_{2})\) 跳跃
        阅读全文
                
摘要:题目传送门 前置知识 最短路 | 最近公共祖先 | 虚树 解法 题目中所说的 回收路线树 即以 \(k\) 为根节点的最短路径树,可以使用 Dijkstra 构建。 标记 回收区域 本质上是对 回收区域 构建虚树,然后就和 luogu P2495 [SDOI2011] 消耗战 基本一致了,根据儿子节
        阅读全文
                
摘要:题目传送门 前置知识 线段树与离线询问 解法 普通的回退背包无法处理本题中的删除操作,考虑线段树分治后转化为只进行添加的背包。 具体实现时可以对每个深度开一个背包的转移数组,时间复杂度为 \(O(nk \log q+qk)\),可以接受。 代码 #include<bits/stdc++.h> usi
        阅读全文
                
摘要:题目传送门 前置知识 珂朵莉树/颜色段均摊 解法 观察到只有 \(=x\) 的位置才是重要的,而其他位置上的数具体是什么并不重要,我们只需要关注其大小关系。 第一遍将 \(\ge x\) 的数看做 \(1\),将 \(<x\) 的数看做 \(0\)。第二遍将 \(>x\) 的数看做 \(1\),将 
        阅读全文
                
摘要:题目传送门 前置知识 曼哈顿距离与切比雪夫距离的相互转化 解法 将切比雪夫距离转换成曼哈顿距离,有新坐标为 \((\frac{x_{i}+y_{i}}{2},\frac{x_{i}-y_{i}}{2})\),因带一个 \(\frac{1}{2}\) 的常数不妨提出来得到 \((x_{i}'=x_{i
        阅读全文
                
摘要:题目传送门 前置知识 Boruvka 算法 解法 考虑 Boruvka 算法。 拆掉绝对值后得到 \(a_{i}+id,a_{i}-id,a_{j}+id,a_{j}-id\) 四个式子。 vector 启发式合并辅助线段树查询的常数过大,无法通过。上述做法的常数在于一条边会被计算两次,考虑优化。 
        阅读全文
                
摘要:题目传送门 前置知识 同余最短路 解法 考虑同余最短路,设 \(dis_{i}\) 表示 \(\bmod a_{1}=i\) 时能被拼成的最小值,接着只需要判断是否有 \(dis_{b \bmod a_{1}} \le b\) 即可。 直接建边的空间复杂度为 \(O(nV)\) ,无法接受。但我们发
        阅读全文
                
摘要:题目传送门 前置知识 矩阵加速递推 解法 设 \(f_{i}\) 表示将 \(s_{1} \sim s_{i}\) 拼起来后的值,状态转移方程形如 \(f_{i}=10^{k}f_{i-1}+s_{i}\) ,其中 \(k=\left\lfloor \log_{10}s_{i} \right\rfl
        阅读全文
                
摘要:你怎么知道我不但莫队的奇偶性排序写错了,还把块长、块数写反了
        阅读全文
                
摘要:题目传送门 前置知识 差分 解法 对于移动,我们可以无脑进行交换来保证移动,然后将中途交换的位置再交换回去。 通过手摸不难发现,\(p_{i}\) 能移动到 \(i\) 当且仅当 \(s_{\min(i,p_{i}) \sim \max(i,p_{i})}\) 中不含有 LR 子串。 反向考虑,即 
        阅读全文
                
摘要:题目传送门 前置知识 后缀数组简介 | 字符串哈希 | 二分 解法 考虑分别计算出编辑距离恰好等于 \(k_{0} \in [0,k]\) 的答案。 观察在编辑距离的存在下,长度差至多为 \(k\)。 考虑设 \(f_{i,j}\) 表示最大的 \(x\) 使得 \(s_{1 \sim x}\) 和
        阅读全文
                
摘要:题目传送门 前置知识 线段树优化建图 | 最短路 解法 考虑对票建虚点,从 \(c_{i}\) 向 \(i+n\) 连一条权值为 \(p_{i}\) 的边,然后从 \(i+n\) 向 \([a_{i},b_{i}]\) 连一条权值为 \(0\) 的边。 建出反图后 \(1 \to i\) 和 \(n
        阅读全文
                
摘要:题目传送门 前置知识 最大公约数 解法 \(\gcd\) 和 \(\operatorname{or}\) 在固定左端点的情况下至多会变化 \(O(\log V)\) 次。 以 \(\gcd\) 为例,考虑求出所有的四元组 \((l,r,x,val)\) 表示 \(\forall i \in [l,r
        阅读全文
                
摘要:题目传送门 前置知识 线性基 解法 将操作离线下来,并按 \(\{ l \}\) 升序排序,接着顺序插入线性基并处理询问。 对于未成功插入线性基的元素 \(k\) 一定能被线性基内选出若干元素得到。故在 \(x\) 能被表出的情况下,设 \(1 \sim l\) 中成功插入线性基的元素个数为 \(s
        阅读全文
                
摘要:题目传送门 前置知识 线性基 解法 考虑线性基。 因为有可空子序列也参与运算,所以第 \(1\) 小的数是 \(0\);但线性基中是不允许有异或和为 \(0\) 的存在,故线性空间内第 \(k-1\) 小的数就是所求的第 \(k\) 小的数。 令每一个二进制位仅在它这一位的基底上出现,其他位上的基底
        阅读全文
                
摘要:题目传送门 前置知识 最长不下降子序列 | 权值树状数组及应用 解法 若将 \(\{ a \}\) 变成严格递增序列,至少需要更改 \(n\) 减去 \(\{ a_{i}-i \}\) 的最长不下降子序列长度个数。 证明 对于 \(a_{i},a_{j}(i<j)\) 若都在最终的严格递增序列里,则
        阅读全文
                
摘要:题目传送门 前置知识 将动态问题转化为静态问题 | 树状数组 解法 先将英雄按 \(\{ l \}\) 升序排序,从而减少一维偏序。 设 \(f_{i}\) 表示以 \(i\) 结尾的最长合法序列长度,状态转移方程为 \(f_{i}=\max\limits_{j=1}^{i-1}\{ [a_{j} 
        阅读全文
                
摘要:题目传送门 前置知识 动态树分治 | 动态开点线段树 | 标记永久化 解法 考虑动态点分治。 两种操作本质上是将 luogu P6329 【模板】点分树 | 震波 的操作互换了下,将原需支持单点修改、区间查询的数据结构换成需支持区间修改、单点查询的数据结构即可。 区间修改、单点查询的动态开点线段树可
        阅读全文
                
摘要:题目传送门 前置知识 点分治 | 树状数组 解法 维护点对信息,考虑点分治。 本题比 luogu P4149 [IOI2011] Race 多了个前缀查询 \(\max\)。套个支持单点修改、区间查询 \(\max\) 的数据结构即可。 直接线段树维护区间 \(\max\) 貌似会 TLE,换成树状
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号