树链剖分
帐下幕僚
我只是一个普普通通的大学学生,我来到这里是想获得我在学校所不能得到的知识。
展开
-
bzoj2243染色(树链剖分+区间合并)
这道题是点的树链剖分。 修改链,询问链。 树链剖分的意思就是将树线性化 树剖之后就变成区间修改和区间询问了。 询问的是颜色段数量,所以就是区间合并,并且树链合并时还要判断两个链的端点是否颜色相同。 (3个半小时,菜不成声)#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #define原创 2016-11-06 10:37:49 · 268 阅读 · 0 评论 -
cf343dWater Tree(dfs序)
三个操作: 1. 将u及其子树全部灌水,子树就是dfs序in[u]和out[u]中间那一部分 2. 将u及其祖先排水,暴力搞tle了,一点小优化仍然tle,其实只需要将u单点排水即可,因为询问u时,如果u或u的子树的某个节点是空的,那么u一定也应该是排水的(只是没有将它排水,排水的话就超时了)。 3. 询问u时,检查u及u的子树是否全部灌水了。 但,由于操作2,比如样例中的那棵树, 先1号原创 2016-11-18 23:22:17 · 481 阅读 · 0 评论