随笔分类 -  数据结构-树状数组

摘要:# 题目 有一次机灵鬼和学长可爱多打比赛, 可爱多不会做一道字符串题,机灵鬼做了很久终于做出来了,这是机灵鬼第一次做出可爱多不会的题。 可爱多觉得很丢人,于是准备研究字符串。可爱多精通 $\mathrm{kmp}$ 算法。$\mathrm{kmp}$ 算法的输入是一个字符串 $S$,该算法的核心是对 阅读全文
posted @ 2023-06-12 21:41 crashed 阅读(229) 评论(0) 推荐(1)
摘要:题目 点这里看题目。 分析 可以说,这是一道思路比较常规的题目,但是某些看待问题的角度还是可以学习的。 首先从题目中注意到两个关键信息: 最长最短路——直径——联系到原树的直径; 显然答案是可以二分的; 原树的直径这个东西怎么用?我们不妨先把原树的直径提作“根”。下面是一个显然的结论: 新加边的一个 阅读全文
posted @ 2022-02-27 22:38 crashed 阅读(84) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2021-11-11 20:41 crashed 阅读(0) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 容易看出,将序列分割并且递归,其实并不会影响排序过程。它影响的是 work_counter 的值——如果分割出了长度为 1 的序列,那么这个序列里面的值将不再贡献。而分割出长度为 1 的序列,其实就相当于某个元素到了它应该到的位置,并且在此之后不会被挪动。我们称这个元素成 阅读全文
posted @ 2021-08-27 15:48 crashed 阅读(87) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2021-06-18 18:52 crashed 阅读(0) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 比较典型的题目! 首先可以去掉:只能到达一个出口的机器人,它们不影响答案。 剩余的机器人就会分别有两个可用出口,我们可以记到左边一个的距离为 \(x\),右边一个距离为 \(y\),那么一个机器人就可以用平面上的点 \((x,y)\) 来表示。 分析移动过程,左、右移动相 阅读全文
posted @ 2021-06-18 16:57 crashed 阅读(68) 评论(0) 推荐(0)
摘要:题目 又是一个条历新年,窗前的灼之花又盛开了。 时隔多年,现在只有这一棵树上盛开着残存的 \(n\) 朵灼之花了。 尽管如此,这些灼之 花仍散发出不同色彩的微弱的光芒。 灼之花的生命极为短暂,但它的花色与光亮瞬息万变。 作为条条的粉丝,Little Q 细致 地记录了最初每朵灼之花的花色 \(c_i 阅读全文
posted @ 2020-08-23 21:49 crashed 阅读(164) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 设$F(T)$为温度为$T$的时候火系战士能量和,$I(T)$为$T$时冰系战士能量和。 显然我们需要求: \(\max\{\min\{F(T),I(T)\}\}\) 另一个显然的事情是,$F(T)$是一个后缀和,$I(T)$是一个前缀和;因而$F(T)$单减,$I(T) 阅读全文
posted @ 2020-07-05 13:54 crashed 阅读(218) 评论(0) 推荐(0)
摘要:题目 点这里看题目。 分析 显然要先计算前缀和$s$。 同样地考虑按位计算贡献。假设当前枚举到了第$k$位,正在枚举第$i$个前缀和,设$x$的第$k$位为$b(x)$,后$k-1$位为$l(x)$。由于子区间和就是前缀和做差,我们就考虑什么情况下,前缀和$i$做差后在$k$位上为 1 。 若$b( 阅读全文
posted @ 2020-06-13 22:57 crashed 阅读(137) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 分析 首先,我们不需要真的从 AC 自动机中把串删掉。由于我们计算贡献和,我们只需要在 AC 自动机上,把已经删除的串的贡献抹掉就可以了。 接着考虑询问。这是一个很基础的问题,一般我们会在 AC 自动机上面处理出每个状态的贡献和,并且将询问的字符串在 AC 自动机上面跑一 阅读全文
posted @ 2020-05-19 14:02 crashed 阅读(122) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 分析 首先发现,对于$(a,b,c)$的合法三元组,$c$一定在$a$的子树内,并且$b$也是$c$的祖先。那么我们只需要考虑$b$的位置。如果$b$是$a$的子孙,那么$c$一定就是$b$的子孙,此时的贡献是$siz(b) 1$(我们以下都用$siz(u)$表示$u$的 阅读全文
posted @ 2020-05-14 13:57 crashed 阅读(144) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 分析 看到中位数,当然会想到二分答案。 考虑检查答案。自然,我们需要找出中位数小于二分值$k$的区间的个数。考虑构造一个$b$: $$b_i=( 1)^{[a_i\ge k]}$$ 可以发现,这个$b$满足,如果区间$[l,r]$的中位数小于$k$,则$\sum_{i=l 阅读全文
posted @ 2020-04-12 17:24 crashed 阅读(258) 评论(0) 推荐(0)
摘要:题目 "点这里" 看题目。 BZOJ 目测......是炸了。 分析 动态点分治入门题。 首先理解什么叫 " 动态点分治 "。 一般点分治需要离线解决,不带修改。动态点分治可以用点分治的方法在线解决问题,支持修改。 在点分治的过程中,每个点都会成为一次分治中心进行计算。如果我们将点按照计算顺序连成一 阅读全文
posted @ 2020-03-27 19:36 crashed 阅读(76) 评论(0) 推荐(0)