
ACM-树链剖分
路小白_zZ
这个作者很懒,什么都没留下…
展开
-
SPOJ QTREE(树链剖分)
题意:有一棵树,n个点,n - 1条边,边有权值,两种操作,query a b,询问a到b所有路径中的最大值,change i a,把第i条边权值设置a。 题解:线段树维护最大值。#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 10005;const int原创 2015-10-15 22:23:56 · 615 阅读 · 0 评论 -
hysbz 2243(树链剖分+区间合并)
题意:有一棵树,n个节点,n-1条边,每个点都有一个权值,现在有两种操作,Q a b,询问a到b路径上所有点组成的序列一共有几段,比如11223就是三段,C a b c把节点a到b路径上所有经过的点权值设为c。 题解:线段树的区间合并问题,用线段树维护每个区间的左端点值和右端点值还有区间内有几段。#include <cstdio>#include <cstring>#include <algo原创 2015-10-16 12:13:51 · 480 阅读 · 0 评论 -
hdu 3966(树链剖分)
题意:有一棵树,上面n个节点,每个节点都有一个权值,有三种操作,I a b c,把从节点a到节点b路径上所有点(包括a和b)权值都加c,D a b c,把从节点a到节点b路径上所有点权值都减c,Q a,问节点a的权值。 题解:树链剖分模板题,线段树维护区间和,用到单点查询,区间更新。#include <cstdio>#include <cstring>#include <algorithm>原创 2015-10-13 12:33:31 · 487 阅读 · 0 评论 -
LightOj 1348(树链剖分)
题意:一棵树,有n个点,每个点都有一个权值,有两种操作,0 a b ,问从节点a到节点b路径上所有点权值和,1 a b,把节点a权值改为b。 题解:树链剖分水题。#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 30005;struct Edge { i原创 2015-10-13 12:37:22 · 731 阅读 · 0 评论 -
fzu 2082(树链剖分)
题意:有一棵树,有n个节点,然后给出n-1条边的权值,然后有两种操作,1 a b 是要求把节点a到节点b路径上所有点的权值和输出,2 a b要求把边a的权值置为b。 题解:边权化点权,把每条边的权值都化为深度更大的点的点权,然后查询操作,当u和v的top成为一个点,再次查询是son[u]到v的权值和,因为u到v会多加一条边的权值。#include <cstdio>#include <cstrin原创 2015-10-13 23:07:40 · 545 阅读 · 0 评论 -
HYSBZ 1036(树链剖分)
题意:有一棵树,有n个点,n - 1条边,给出每个节点的权值,有三种操作,qmax a b询问a到b所有点的最大权值,qsum a b询问a到b所有点权值和,change a b把节点a权值设为b。 题解:两颗线段树,维护最大值和区间和。#include <cstdio>#include <cstring>#include <algorithm>using namespace std;co原创 2015-10-15 22:26:51 · 444 阅读 · 0 评论 -
poj 3237(树链剖分)
题意:有一棵树,n个点,n-1条边每条边有一个权值,有三种操作,query a b,询问a到b所有路径的最大权值,negate a b,把a到b所有路径权值设置为对应权值的相反数,change a b,把第a条边权值设为b。 题解:线段树维护最大值和最小值,negate a b的时候把对应区间最大最小值交换并取反,注意要用一个标记每个区间取反的次数,因为偶数次取反相当于不变。#include <c原创 2015-10-15 22:40:11 · 410 阅读 · 0 评论 -
poj 2763(树链剖分)
题意:有一个人在一棵树的某个节点s,然后给出了树的每条边都有一个权值,有两种操作,0 a 是问从节点s到a的路径权值和,然后a就成了s,1 a b把第a条边权值变为b。 题解:边权转点权的模板题。#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 100005;s原创 2015-10-15 22:20:16 · 995 阅读 · 0 评论