随笔分类 - 数据结构
摘要:Gauss消元,我在线代书上学会的…… 大概就是每次把每行第一个元素消掉,直到成为上三角矩阵为止。 此时从最后一个元素反代回去,就可以求出线性方程组的解。
阅读全文
摘要:线段树合并入门题。 分别计算左子树的逆序对,右子树的逆序对,合并的时候计算贡献。
阅读全文
摘要:由于数据范围过大,直接线段树会炸,离散化或者动态开点都行。 打个标记在树上,最后把树dfs一边算一下即可。
阅读全文
摘要:在洛谷上点了个Splay的tag想玩玩,结果看到这题……
阅读全文
摘要:假的,假的,都是假的。 题意是最大点独立集还要算贡献,写个网络流岂不是GG? 其实这个也就是奇偶不能选而已……所以无外乎这么四种情况: 线段树按照套路维护一下就好了。
阅读全文
摘要:这题乍一看后缀相等很烦的样子…… 其实如果把字符串倒过来,那么相等的后缀就可以转化成前缀,前缀相等扔进trie就可以了。 剩下无非是Trie的树链kth,主席树随便维护就好。 注意一个串彻底结束才能打val++。而且因为主席树维护的权值是出现次数,连离散化都不用的。
阅读全文
摘要:蒟蒻有生之年终于切掉了这道题……在陈丽杰的sam课件上就有这道题,但是zcysky太菜一直不敢做。 其实现在做一下,发现这个题目并不是太难。 所谓的出现次数就是这个字符串在SAM上跑完对应的right集合。要支持及时插入,也就是要动态的维护Parent树的形态。 “动态”,“树”,我们很明显本能的会
阅读全文
摘要:追yql做题记录的时候做到的……一道Splay模版题…… 啊LCT写久了都有点忘了Splay了(什么奇怪的逻辑?) 其实说白了五个操作: 1、 将某元素置顶:将元素旋到根,然后将左子树合并到该元素的后继 2、 将某元素置底:将元素旋到根,然后将右子树合并到该元素的前驱 3、 将某元素提前/滞后1位:
阅读全文
摘要:不知道花神究竟是哪位dalao,但是我还是想缅怀下菊花大爷…… 提交:http://www.lydsy.com/JudgeOnline/problem.php?id=3211 又一个区间开根号题,不过这个无修改的比较简单,可以YY一下,一个区间开根号,开着开着就成了0或者1,维护下就好。 当然jir
阅读全文
摘要:其实只是放个代码,会K-D-Tree的同学看了就知道怎么rebuild了,其实也是很简单粗暴的…… 单独再发一次吧,感觉把代码跟之前的一起发不知道啥时候就找不到了…… 1 #include<bits/stdc++.h> 2 #define N 50010 3 #define inf 10000000
阅读全文
摘要:我怎么控制不住自己又写了个数据结构啊……真是的…… 其实我是想练CDQ分治的……结果忍不住又写了个主席树。 首先看看不动态的逆序对咋做?树状数组嘛。 那么删除咋搞?就是考虑贡献,把它前面比他大的,后面比他小的减去…… 诶?带修改主席树?我……我好像才写过……? 1 #include<bits/std
阅读全文
摘要:三维偏序是一个很经典的东西啊。 //结果蒟蒻我居然是先写的四维的? 第一位排序当作限制,然后cdq分治+树状数组统计就好。写起来很快的啊。 题目:bzoj3262 陌上花开 1 #include<bits/stdc++.h> 2 #define N 100005 3 using namespace
阅读全文
摘要:昨天在写带修改主席树的时候,咸鱼zcysky发现自己似乎根本不会写主席树 于是正好找个空复习下…… 主席树的原理不用我扯了,主席树为啥能求k大,大概在它可以用历史版本存下区间的前缀和,求的时候差分下就能提出我要求的区间。 不过这么搞的话不要忘了离散化。 1.kth number 就是上面的裸题,不要
阅读全文
摘要:题面地址(权限题) 不用权限题的地址 首先说说怎么搞带修改主席树? 回忆一般的kth问题,我们的主席树求的是前缀和,这样我们在目标区间的左右端点的主席树差分下就能求出kth。 那么我们如何支持修改操作? 考虑到我们之前使用主席树朴素的维护区间前缀和,支持修改的话,只要把前缀和交给擅长它的树状数组维护
阅读全文
摘要:LCT维护子树并没有想象中的那么难,在这里只是复习下。 (其他的维护子树的题目,可见:“共价大爷游长沙”) 只要记录下虚边连接的信息就好了。
阅读全文
摘要:这是两个月前写的,看能不能搬运过来…… 动态树是一类维护森林连通性的问题(已纠正,感谢ZQC巨佬),目前最(wo)常(zhi)见(hui)的动态树就是LCT(Link-Cut-Tree),然而LCT似乎是处理路径的,处理子树可能力不足。据说有一种称为Top Tree的数据结构,可以处理所有。但是学不
阅读全文

浙公网安备 33010602011771号