
树链剖分
Duan2baka
人
展开
-
BZOJ[1984]月下“毛景树” 树链剖分+线段树
传送门ber~边权放到下面的点上,统计/修改时不算他俩的LCA Add时: ①上面已经有覆盖标记——覆盖标记+k ②没有覆盖标记——加标记+k 覆盖时 ①上面已经有加标记——加标记清零,覆盖标记打上 ①上面没有加标记——加标记清零,覆盖标记打上…代码如下:#include#include#include#define N 100020using namespac原创 2018-01-15 13:10:17 · 336 阅读 · 0 评论 -
BZOJ[2157]旅游 树链剖分+线段树
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2157 DescriptionRay 乐忠于旅游,这次他来到了T 城。T 城是一个水上城市,一共有 N 个景点,有些景点之间会用一座桥连接。为了方便游客到达每个景点但又为了节约成本,T 城的任意两个景点之间有且只有一条路径。换句话说, T 城中只有N − 1 座桥。Ray 发现,有些桥上可以原创 2017-10-18 20:51:26 · 515 阅读 · 0 评论 -
BZOJ[3626][LNOI2014]LCA 树链剖分+线段树
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=3626Description给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。 设dep[i]表示点i的深度,LCA(i,j)表示i与j的最近公共祖先。 有q次询问,每次询问给出l r z,求∑i≤ri=ldepLCA(i,z)\sum_{i原创 2017-09-19 21:59:01 · 695 阅读 · 0 评论 -
BZOJ[4034][HAOI2015]树上操作 树链剖分+线段树
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=4034 Description有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权原创 2017-08-28 21:21:16 · 511 阅读 · 0 评论 -
BZOJ[4326][NOIP2015]运输计划 二分答案+树链剖分+差分
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=4326Description公元 2044 年,人类进入了宇宙纪元。L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球。小 P 掌管一家物流公司, 该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从 ui 号星球沿最原创 2017-08-17 10:32:58 · 461 阅读 · 0 评论 -
BZOJ[4196][Noi2015]洛谷[2146]软件包管理器
题目链接http://www.lydsy.com/JudgeOnline/problem.php?id=41964196: [Noi2015]软件包管理器Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1874 Solved: 1069[Submit][Status][Discuss]Description Li原创 2017-08-16 18:39:24 · 334 阅读 · 0 评论 -
模拟赛-仙人球 Tarjan+树链剖分
题目描述如果一个无自环无重边无向连通图的任意一个点最多属于一个简单环,我们就称之为仙人球。所谓简单环即不经过重复的结点的环。现在,小Z有一张仙人球图,他想知道两个点之间不同的非复杂路径的条数。这里复杂路径指的是经过某条边至少两次的路径,两条路径不同当且仅当它们之中的边不同。这个问题太难了,所以小Z想要请教请教你。当然,为了不让你特别尴尬,你只需要求出条数mod 1000000007的值即可原创 2018-01-19 09:50:21 · 433 阅读 · 0 评论 -
BZOJ[3531][Sdoi2014]旅行 树链剖分+动态开点线段树
传送门ber~对每种信仰建一个线段树 显然这是MLE的 动态开点就好了!代码如下:#include#include#include#define N 100020using namespace std;inline int read(){ int x=0,f=1;char c; do c=getchar(),f=c=='-'?-1:f; while(!is原创 2018-02-05 14:22:34 · 451 阅读 · 0 评论 -
BZOJ[4999]This Problem Is Too Simple! 树链剖分
传送门ber~同BZOJ[3531]对每个权值开个动态开点线段树代码如下:#include<algorithm>#include<ctype.h>#include<cstdio>#include<map>#define N 100010using namespace std;inline int read(){ i...原创 2018-02-10 19:29:20 · 286 阅读 · 0 评论