
树链剖分
tiany7
人一我十,人十我万
展开
-
洛谷P2590 ZJOI树的统计(树链剖分 + 线段树)
2020.5.25距离某人的生日还有几天,提醒自己不要忘记祝生日快乐。这道题直接A了。就是简简单单的一道树剖+线段树。好久没写线段树单点更新了,刚开始自己看到最大值和区间和还想着用树状数组和线段树的骚操作搞。不过树状数组就要给第二次dfs多套一个log,好像也不是多大的问题。但后来越写越不对劲,哎这个信息怎么感觉可以通过同一棵树维护呢?后来一拍脑袋,卧X,我蠢了,我发现完全可以在做法中去掉一个log,果断开写。最短路径就是用top数组不断溯祖,中间为了保证所有边都被统计了,所以我们需要当top[x]的深原创 2020-05-25 12:26:25 · 298 阅读 · 0 评论 -
洛谷P4281 AHOI紧急集合/聚会 (树链剖分 + LCA)
2020.5.23今天本来信心满满去打code+了,结果从彩蛋题就开始懵逼,后来ide坏了,修好以后T1的做法应该是对的,然而segfault了,可能是边界问题懒得判了。今天来写一发树剖和lca,这个难度都不大,基本都知道该怎么做,然而这道题要求3节点的lca,然后我写完就又懵了,这怎么搞?一次lca大概是log的,但是我起初是用a和b的lca去搞c的lca,然而发现答案错了。自闭了,去查题解发现,这题的关键在于a,b,c三个点的lca有3个,其中两个必定相同,所以直接就用那个不同的就行了,然后根据de原创 2020-05-23 16:30:30 · 348 阅读 · 0 评论 -
HAOI2015.树上操作----树链剖分 + 线段树
2020.5.9写完这篇题解去吃饭去。被这道题搞得有些怀疑人生了。关键问题是对于“根节点”的定义,我以为是节点x的子树的总权值,因为对不上样例还怀疑了下自己用的线段树板子,写了一上午总算确认了自己写的板子没错(我的线段树是郭神和普通线段树的结合版,虽然用这个过了好多题但是每次还是不太敢确定是不是对的)。换了个风格。我树剖才写过,怎么可能有问题?再读题,卧槽,这个根节点不是指的是1吧?完犊子哦。改了一发就对上了,然后顺利AC。我下午把另一道题也写一下。我队前任队长去斯坦福了,我这个现任队长也要加油了(原创 2020-05-09 11:44:55 · 216 阅读 · 0 评论 -
树链剖分求LCA的模板(洛谷P3379)
2020.5.6题目描述我就不写了,模板题。之前写过倍增+tarjan求lca的板子,但是倍增这东西我貌似还没太搞懂,只写过st表,可能是我太菜了呜呜呜。树剖其实我之前也没太弄懂,后来做了一道河南某年的省选题就豁然开朗了(但还没ac,可能是我用的线段树板子出问题了)。就是用2遍dfs处理好树内边的归属关系 + 不断向上溯祖,追溯到同一个祖先即是答案。top数组存放子树顶节点编号,depth存...原创 2020-05-06 15:47:27 · 243 阅读 · 0 评论