摘要:
树链剖分 警钟敲烂 赋值赋反 线段树L,R和l,r分不清(会导致p疯狂扩张) p<<1+1和p<<1|1是两个东西!!!!! 思想 把一颗树划分成若干条重链,利用重链性质在树上维护树上路径的信息。 概念 定义 重子节点 表示其子节点中子树最大的子结点。如果有多个子树最大的子结点,取其一。如果没有子节 阅读全文
树链剖分 警钟敲烂 赋值赋反 线段树L,R和l,r分不清(会导致p疯狂扩张) p<<1+1和p<<1|1是两个东西!!!!! 思想 把一颗树划分成若干条重链,利用重链性质在树上维护树上路径的信息。 概念 定义 重子节点 表示其子节点中子树最大的子结点。如果有多个子树最大的子结点,取其一。如果没有子节 阅读全文
posted @ 2022-10-25 23:14
狐适之
阅读(50)
评论(1)
推荐(1)

KMP学习笔记 本质 模式串前缀的真前缀和真后缀最大相同的位置 当我们的模式串匹配到s[i]时失配,就说明s[1]~s[i-1]匹配成功,如果此时不直接将模式串右移至kmp[i],而是重新从模式串的s[1]开始匹配是一定会失败的。(因为如果成功了,那么kmp[i]势必比原来大)。所以kmp数组可以帮
区间DP 惯用手段 区间dp中比较明显的阶段一般就是要合并的字段的长度; 先枚举要处理的长度,之后用短的序列求出长的即可; P3146 248 ~~这题长得和P3147长得一模一样~~ 给定一个序列,每次可以合并两个相邻且相同的数,求能合并出的最大数。 区间dp和一种类倍增的写法都可以完成。 定义
P2467 地精部落 题解 比较恶心的一道线性dp。 要求1~N的排列,满足a[i-1]<a[i]>a[i+1]或a[i-1]>a[i]<a[i+1],求这样的排列的个数。 既然是线性dp,那么状态一定和长度有关,一维的状态是否能解决呢? 思考后发现不行,由于很难直接从f[i-1]推出f[i](实际
数列分块入门 写在前面 写得好的暴力叫分块,写得烂的分块叫暴力 警钟敲烂 修改时要先将原数组复制一份,否则无法应对边角块的修改。 一定要特判 $ l$ 和 $ r $ 属于同一块的情况!111 判定是否开最后一块时要看当前的 R[tot] 是否小于 $ n $。 在同一块修改后要及时返回。 数列分块
题目分析 分层图最短路。我们可以借助题中所给边建两层一模一样的图,对于有干草垛的节点,在两层图中的相应节点间连一条边权为干草垛美味程度相反数的边,再以 $n$ 为起点跑一遍SPFA。比较两层图上对应节点的最短路长度,如果 $dis_{i} > dis_{n+i}$ 说明可以找到合法的干草垛,输出 $
tarjan学习笔记 算法思想 通过一次dfs,找到所有的强连通分量。 分析与定义 dfn序:一个点被搜索到的顺序; low:一个点通过最多一条非树边能到达的dfn最小的点; 栈:u的祖先和与u的祖先在同一强连通分量中的点。 我们把在dfs中找到的边分为三种:横叉边,返祖边和前向边。 对于前向边,我
突然心血来潮,想要弄一个博客。看队里的大佬都整了,就比葫芦画瓢做了一个,本来想用sakura主题,无奈main.js文件配置修改实在麻烦,就改成了现在的主题QwQ 咱本来并没有写博客的习惯,但是既然花半天才整好,以后感悟之类就发这里了。
题目分析 很容易发现只要烧制所有瓷片的损耗小于总量,就能烧制成项链。 不妨设烧制了 $n$ 片,则总长度为 $n\times 0.3\sqrt{v-v0}$。 本题数据范围较小,$n$ 的大小不会超过 $60000$,因此可用枚举法解决。 接下来只需要枚举 $n$ 的大小,比较项链总长度选出最大值就
浙公网安备 33010602011771号