树链剖分
XSamsara
AFO
展开
-
树链剖分 完美的想法
树链剖分 不知是谁想出的想法,太完美了,首先我大致讲一下树剖的想法。 将树分成重链和轻链,使每条重链越长越好,每次可以用数据结构将重链上的所有节点求出或修改,达到优化的效果,下面我讲的是用线段树维护一棵树。 当然不止是线段树可以维护,树状数组和Splay也可以。 下面看一道题: 洛谷3384 题目描述 如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值...原创 2018-06-05 20:08:01 · 152 阅读 · 0 评论 -
BZOJ 1036: [ZJOI2008]树的统计Count【树链剖分+线段树】
1036: [ZJOI2008]树的统计Count 【题目描述】 传送门 【题解】 裸的树链剖分。 代码如下 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define MAXN 30005 using name原创 2018-06-06 10:35:16 · 186 阅读 · 0 评论 -
BZOJ 2243: [SDOI2011]染色【树剖+线段树】
【题目描述】 传送门 【题解】 其实就是树剖+线段树,线段树如何判断连续段数量,也就是在Lson和Rson合并时加一句判断,Lson有段和Rson左端是否相同,相同-1,否则不变。 然后LCA时也要记一下,判小心一点,就可以了。 代码如下 #include<cstdio> #include<algorithm> #define MAXN 1000...原创 2018-06-19 20:17:42 · 167 阅读 · 0 评论