数据结构
文章平均质量分 69
数据结构
snowy2002
一个来自985的ACMer
展开
-
线段树区间修改,维护区间gcd
一道很经典的题目,大概就是在线段树上维护序列的差分就好了。原创 2023-01-02 22:23:26 · 349 阅读 · 0 评论 -
CCPC2020(绵阳) C. Code a Trie
然后我们再求最少的结点个数,首先所有的LCA到根的路径一定能包含所有的答案中的点,然后我们考虑将LCA尽可能往根上面跳,首先,一个LCA不能跳到其他的LCA上,而且也不能跳到之前的LCA跳的路径上,其次,不能跳到子树中含有大于等于两个这样的LCA的结点,这样我们就能算出最少的结点个数了。其次,同一个value值的所有儿子结点的子树中包含这个权值的子结点一定只能含有当前的权值,如果含有多于一个的话,就一定不能构成符合条件的字典树,如果两个不同权值所得的LCA相同,同样也无解。原创 2022-10-27 00:21:40 · 248 阅读 · 0 评论 -
P6292 区间本质不同子串个数(SAM+LCT+线段树)
现在我们需要考虑重复字符串的问题,我们只需要计算所有重复出现的子串最后一次出现的位置即可,而对于一个等价类中的所有字符串,也就是后缀树上一个结点能够表示的所有字符串,我们可以同时处理他们的最后一次出现的结束位置。也就是说,在每插入一个点往根跳的过程中,只需要减去这条实链对答案的贡献并且在实链的。在加入一个新的右端点的时候,我们可以把这条链上原有的贡献减去,再加上新的贡献。如果不考虑重复的字符串,每加入一个右端点,对答案的贡献就是。值相同的结点一定在一条连续的链上,也就。行,每行一个整数,表示第。原创 2022-08-25 14:58:00 · 390 阅读 · 0 评论 -
P5212 SubString(SAM+LCT)
上连接两个点即可,而对于两个点的情况,天上的结点需要继承儿子的权值,地上的结点直接连边就可,这样就可以动态维护后缀树了,对于每次插入的地上的结点,我们还需要把这个点到根上的路径。如果不要求强制在线的话,把询问离线下来按照右端点排序,把插入字符串的过程改成删除字符串的过程,对于删除一个字符,就可以把这个字符对应的后缀树上的结点到根的链的。中插入结点的时候有两种情况,一种是在后缀树上插入一个点,一种是插入两个点,对于一个点的情况,我们只需要在。操作,输出询问的字符串在当前字符串中出现了几次。原创 2022-08-25 10:44:56 · 404 阅读 · 0 评论 -
二维线段树(线段树套线段树)
由于网上的其它博客对初学者非常不友好,所以我就来写一篇博客帮助萌新们快速入门树套树啦。所谓线段树套线段树就是在第一棵线段树的每一个结点上再开一颗线段树,第一棵线段树用来维护第一维的数据,再用第一棵线段树上新开的线段树来维护第二维的数据。是不是没听懂呢,下面我们直接上图:这就是树套树大概的模样,横线上面是第一棵线段树,下面是对第一棵线段树的每一个结点新开的线段树,就像是每一个点内都套着一棵线段树一样,那么二维线段树就可以用来维护平面信息下面看一道例题:陌上花开首先对第一维进行排序,然后用树套树进行处理原创 2022-01-26 23:18:59 · 3781 阅读 · 1 评论