树链剖分
Neo__Z
这个作者很懒,什么都没留下…
展开
-
bzoj2243 染色【树链剖分+线段树】
解题思路:先链剖。 维护线段树时每个节点维护三个值:lc(左端点颜色),rc(右端点颜色),cnt(区间中颜色段数量)。 注意每次合并区间时(详见代码中update,query,Query函数),若左区间rc等于右区间lc是结果要减1; 修改时打标记即可,注意tag初始要赋值为-1,因为有color为0的情况。#include<iostream>#include<cstdio>#inclu原创 2017-10-17 21:57:30 · 264 阅读 · 0 评论 -
bzoj3924 幻想乡战略游戏【树链剖分+线段树】
解题思路:太蒟蒻了,不会动态点分治,只能链剖暴力移中心了,不过还好bzoj数据水。 很明显是求待修改下的带权重心,于是链剖建线段树维护每个点的权值,注意到一个子树在该线段树上编号是连续的(以前竟然没发现,惭愧……),所以以u为根的子树的权值和就是sum(pos[u]~pos[u]+size[u]-1)。 每次修改后暴力往更优的方向走就行了。#include<iostream>#include原创 2017-11-23 15:14:35 · 351 阅读 · 0 评论 -
bzoj2402: 陶陶的难题II【分数规划+树链剖分+线段树维护凸包】
DescriptionInput第一行包含一个正整数N,表示树中结点的个数。 第二行包含N个正实数,第i个数表示xi。 第三行包含N个正实数,第i个数表示yi 。 第四行包含N个正实数,第i个数表示pi。 第五行包含N个正实数,第i个数表示qi。 下面有N-1行,每行包含两个正整数a,b(1<=a,b<=N),表示树中的边。 第N+5行包含一个正整数M,表示...原创 2018-02-24 18:10:00 · 264 阅读 · 0 评论 -
bzoj3694: 最短路【树链剖分+线段树&&最短路】
Description给出一个n个点m条边的无向图,n个点的编号从1~n,定义源点为1。定义最短路树如下:从源点1经过边集T到任意一点i有且仅有一条路径,且这条路径是整个图1到i的最短路径,边集T构成最短路树。 给出最短路树,求对于除了源点1外的每个点i,求最短路,要求不经过给出的最短路树上的1到i的路径的最后一条边。Input第一行包含两个数n和m,表示图中有n个点和m条边。 ...原创 2018-03-04 18:38:39 · 352 阅读 · 0 评论