
其它-差分
Endless_Way
这个作者很懒,什么都没留下…
展开
-
UOJ 150 [NOIP2015]运输计划
二分+树链剖分+差分要求最远的值最小,于是我们可以考虑二分答案。对于每一个二分出来的lim,我们只需要判断所有路径(指运输计划里面所有的路径)中长度大于lim的所有路径是否存在一条公共边,使得最长路径减去它可以小于等于lim(如果最长的可以,那么短的也肯定可以)那么怎么求这条边?我刚开始的想法是树剖+线段树,对每一条超过lim的路径上的边的都记+1,然后暴力枚举边来找公共边。但是这样是O(nlog3原创 2016-10-06 14:47:27 · 718 阅读 · 0 评论 -
BZOJ 4771 七彩树
主席树如果没有深度限制的话,显然有一种维护方式:对于每一种点,给自己+1,给同一颜色的前驱和自己的LCA-1,给同一颜色的后继和自己的LCA-1,然后查子树和。加了深度限制就坑爹了。直接用dfs序维护不了,因为询问区间不连续。考虑每一个询问,我们只希望所有深度不超过dep[x]+d的点有贡献,希望上述的维护只针对前几层的点。因此我们考虑按层来预处理信息。然后用一个能资瓷加和查的数据结构。得到算法:对原创 2017-03-16 21:42:29 · 693 阅读 · 0 评论