
|----树链剖分
yhf_2015
无。。。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【BNUOJ】Borrow Classroom
第十五届北京师范大学程序设计竞赛决赛B. Borrow Classroom每年的BNU校赛都会有两次赛前培训,为此就需要去借教室,由于SK同学忙于出题,这个事情就由小Q同学来跑腿。SK同学准备从宿舍出发,把借教室的单子交给小Q同学让他拿去教务处盖章,但是何老师突然发现SK同学好像借错教室了,想抢在借教室的单子被送到教务处之前拦截下来。现在把校园抽象成一棵n个节点的树,每条边的长度都是一个单位长度,从原创 2017-04-22 19:28:39 · 619 阅读 · 0 评论 -
【BZOJ 1036】 [ZJOI2008]树的统计
题目来源:BZOJ 1036思路:练习树链剖分的例题,注意修改操作,所给的信息是树上的点的编号,不是线段树里的编号。代码:#include #include #include #define mid ((l+r)>>1)#define lch (now#define rch ((nowconst int maxn = 30010;const int inf = 2原创 2017-04-26 08:20:31 · 294 阅读 · 0 评论 -
【BZOJ 2243】[SDOI2011]染色
题目来源:BZOJ 2243思路:原创 2017-04-26 08:23:03 · 299 阅读 · 0 评论 -
【BZOJ 3589】 动态树
思路维护点到跟的路径的权值和,记录二元组(a,b)(a,b)来处理子树加的情况,多条路径的信息合并时,把点按照dfsdfs序排序,每次计算答案的时候只需要减去与上一个点的LCALCA即可。 时间复杂度:O(k×qlogn)O(k\times q \log n)代码原创 2017-04-26 17:07:07 · 475 阅读 · 0 评论 -
【BZOJ 2325】[ZJOI2011]道馆之战
思路:代码:#include #include #include #include using namespace std;const int maxn = 30010;int n, m;int head[maxn], to[maxn1], nxt[maxn1], cnt;int top[maxn], dep[maxn], son[maxn], sz[maxn],原创 2017-04-20 08:17:34 · 258 阅读 · 0 评论 -
【学习】树链剖分
学习资料:starszys的博客 树链剖分以下为学习笔记,部分摘自starszys的博客。解决的问题:把对树的操作转换到序列上,以便于用数据结构来维护。基本概念:树链:就是树上的路径。剖分,就是把路径分类为重链和轻链。重儿子:siz[u]为v的子节点中siz值最大的,那么u就是v的重儿子。轻儿子:v的其它子节点。重边:点v与其重儿子的连边。轻边:点v与其轻儿子的原创 2017-04-26 08:24:52 · 361 阅读 · 0 评论