随笔分类 - 学习总结
摘要:P2107 小Z的AK计划 建议直接暴力,路上取 max 即可。 想太复杂了,WA 了一个点。 P1484 种树 经典题。 明明已经跟时间无关了不知道我为啥还硬要从左到右枚举。 考虑先取出最大的,再反悔。设位置为 。 如果要取 ,那肯定是同时取,所以可
阅读全文
摘要:P9522 [JOISC2022] 错误拼写 牛魔计数题使我旋转。 主要说一下分析思路: 根据字典序的比较方式我们可以转化一下 这个条件。我们现在只考虑严格小于的情况。 字典序暗示我们要从后往前 DP,于是设 表示
阅读全文
摘要:将内层 DP 的结果作为外层 DP 的状态进行 DP。 P10614 BZOJ3864 Hero meet devil 考虑 LCS 的转移, 或 \(g_{i,j}=\max(g_{i-1,j},g_{i,j-1})[s_i\ne
阅读全文
摘要:后缀排序 char s[N]; int n,sa[N],rk[N],ork[N<<1]; int buc[N],id[N],pid[N]; bool cmp(int a,int b,int w){return ork[a]==ork[b] && ork[a+w]==ork[b+w];} void b
阅读全文
摘要:构建 口胡一下过程: 边指向自己的最长回文后缀(偶根指向奇根)。 定理:每添加一个字符,至多新增一个新的本质不同的回文串,且是所有 回后缀中最长的。 由此得出推论:本质不同的回文子串(回文自动机的点数)不超过 |S| 暴力跳终止链,找到第一个左侧有 的回文后缀 \(v\
阅读全文
摘要:模板(不完整) 缺省源 #include<bits/stdc++.h> #define db double using namespace std; const int N=25; const db pi=acos(-1),eps=1e-8; int sign(db x){return x<eps?
阅读全文
摘要:一、算法简介 Manacher 算法能够在线性的时间内求出以每个位置为中心的最长回文半径。 首先将字符串所有字符(包括头尾)插入相同的分隔符,因为 Manacher 仅能找到长度为奇数的回文串,并在整个串前后方插入另两种分隔符防止越界。 定义位置 的回文半径为以 为对称中心的
阅读全文
摘要:# 一、线段树优化建图 > **基本操作**: > 1. 向区间 连边 > 2. 区间 向 连边 > 3. 区间 向 区间 连边 建立两棵线段树,一棵从父亲节点向儿子节点连长度为 的边,称为**出树**;一棵从儿
阅读全文
摘要:李超线段树、线段树合并、历史值问题、势能线段树
阅读全文
摘要:模拟赛考了,简单贺一下 oi-wiki ## 引入 ### 定义 在跑 的过程中我们会从小到大加入若干条边。现在我们仍然按照这个顺序。 首先新建 个集合,每个集合恰有一个节点,点权为 。 每一次加边会合并两个集合,我们可以新建一个点,点权为加入边的边权,同时
阅读全文