树链剖分
文章平均质量分 68
霜刃未曾试
这个作者很懒,什么都没留下…
展开
-
SPOJ 375 QTREE Query on a tree 树链剖分
题目:http://www.spoj.com/problems/QTREE/en/题意:给定一棵有n个点的树,每条边都有权值。有两种操作,第一种是询问两点间路径上边权的最大值,第二种是改变输入顺序中第i条边的权值思路:树链剖分第一题。siz[v]表示以v为根的子树的节点数dep[v]表示v的深度(根深度为1)top[v]表示v所在的链的顶端节点fat[v]表原创 2016-05-13 23:06:26 · 456 阅读 · 0 评论 -
SPOJ QTREE3 Query on a tree again! 树链剖分
题目:https://vjudge.net/problem/SPOJ-QTREE3题意:给定一棵树,初始树上的每个点都为白色,有以下操作:0 i:0\ i:把第i个点的颜色取反,白变黑,黑变白1 v:1\ v:求从点1到点v的路径上第一个颜色为黑的点思路:树链剖分,每次优先查询左子区间,再查询右子区间。因为一定是从vv往11走,最后一个查询到的值才是答案,所以查到一个值就更新一下答案#incl原创 2017-09-12 14:26:46 · 555 阅读 · 0 评论 -
HDU 5893 List wants to travel 树链剖分
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5893题意:给定一棵树,树有边权,有两种操作:改变两点之间路径上的边权为某个值查询两点之间路径上的边权序列有多少个连续区间思路:把边权映射到其邻接的两点中深度较大的点上去,树链剖分,线段上维护,线段树维护区间左端点和右端点颜色,合并时较麻烦。此题真正的难点在查询时,合并两个区间要判断端点颜色是否相同#i原创 2016-10-21 16:53:38 · 304 阅读 · 0 评论 -
HDU 3804 Query on a tree 树链剖分 + 线段树离线操作 好题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3804题意:给定一棵树,有边权,首先输入一个n,然后n - 1行a b c,代表点a点b之间的边权为c,接着输入一个m,然后m行x c,查询点1到点x之间的路径上不大于c的边权最大是多少思路:首先树链剖分啊,然后我写了一个很直白的线段树,然后也很直白的T了。放了一周多的时间,还是没有原创 2016-05-23 22:27:56 · 599 阅读 · 0 评论 -
HDU 5044 Tree 树链剖分
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5044题意:给定一个树,点和边都有权值,初始都为0。有t组数据,每组数据输入n和m,代表节点数和操作数,接下来n - 1行,每行两个数,代表两点有边相连。然后m行,形式如ADD1 a b c 或 ADD2 a b c,前一种是把点a到点b路径上的点权都加上c,后一种是把点a到点b路径上的边权原创 2016-05-21 21:36:31 · 368 阅读 · 0 评论 -
HDU 5029 Relief grain 树链剖分 好题
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5029题意:给定一棵树,有n个点,有m次操作,先有n - 1行形式如 a b,代表a b之间有边,然后是m行形式如a b c,代表将从点a到点b路径上的点都给予一种粮食c。最后输出每个点的个数最多的粮食类型。思路:很容易想到树链剖分,但是粮食种类达100000,怎么用线段树维护每个点原创 2016-05-22 11:32:31 · 442 阅读 · 0 评论 -
LightOJ 1348 Aladdin and the Return Journey 树链剖分
题目:http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1348题意:给定一个数,节点数为n。先输入一个n,代表节点数,然后一行有n个数,代表 树上点从0 到n - 1的初始点权,然后n - 1行,每行两个数a b,代表这两个点之间有一条边。紧接着输入一个m,代表有m个操作,操作有两种:0 a b询原创 2016-05-22 21:34:34 · 416 阅读 · 0 评论 -
CodeForces 191C Fools and Roads 树链剖分
题目:http://codeforces.com/problemset/problem/191/C题意:给定一棵树,有n个节点n - 1条边,然后每次给出两个节点,两点路径上的边的权加1(初始边权为0),最后依次输出每一条边的边权思路:树链剖分,每次更新时lazy操作,最后依次查询边权就好了#include #include #include #include原创 2016-05-19 20:09:58 · 476 阅读 · 0 评论 -
SPOJ GRASSPLA Grass Planting
题目:http://www.spoj.com/problems/GRASSPLA/en/题意:给定一棵树,树有边权,初始边权都为0。有两种操作:第一种是两点之间的边权均加1,第二种是求两点之间的边权和。思路:树链剖分啊,线段树区间求和。写成多实例一直莫名RE,改成单实例就过了#include #include #include #include using na原创 2016-05-16 23:13:46 · 587 阅读 · 0 评论 -
POJ 2763 Housewife Wind 树链剖分
题目:http://poj.org/problem?id=2763题意:给定一棵树,给定当前所在的点,有两种操作:第一种是更新第i条边的权值,第二种是求从当前点到目标点的路径权值思路:基本是裸题了。。。#include #include #include #include using namespace std;typedef long long ll;c原创 2016-05-16 19:24:34 · 484 阅读 · 0 评论 -
POJ 3237 Tree 树链剖分
题目:http://poj.org/problem?id=3237题意:给定一棵树,有边权,然后有一定数量的操作:第一种操作是改变第i条边(输入顺序)的边权为v,第二种操作是对某两点路径上的所有边权取反,第三种操作求两点间路径的最大权值思路:树链剖分啊,然后线段树维护区间最大值和最小值,因为取反操作会使最大变最小,最小变最大,在更新最大最小值注意,一不小心就哇了#inc原创 2016-05-15 23:48:25 · 395 阅读 · 0 评论 -
HDU 3966 Aragorn's Story 树链剖分
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3966题意:给定一棵树,树的节点有点权,有P个询问,第一种是两点路径上(包括这两点)的点全部加上某个值,第二种是两点路径上(包括这两点)的点全部减去某个值,第三点是查询某个点的点权思路:树链剖分啊加线段树lazy操作。lazy操作写挫了,我也是被自己的弱智惊呆了。。。#inclu原创 2016-05-15 22:34:43 · 368 阅读 · 0 评论 -
HYSBZ 2243 染色 树链剖分
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2243题意:Description给定一棵有n个节点的无根树和m个操作,操作有2类:1、将节点a到节点b路径上所有点都染成颜色c;2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。请原创 2016-05-15 17:38:41 · 370 阅读 · 0 评论 -
HYSBZ 1036 树的统计Count 树链剖分
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1036题意:Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大原创 2016-05-14 20:27:20 · 399 阅读 · 0 评论 -
FZU 2082 过路费 树链剖分
题目:http://acm.fzu.edu.cn/problem.php?pid=2082题意:Description有n座城市,由n-1条路相连通,使得任意两座城市之间可达。每条路有过路费,要交过路费才能通过。每条路的过路费经常会更新,现问你,当前情况下,从城市a到城市b最少要花多少过路费。Input有多组样例,每组样例第一行输入两个正整数n,m(2 Output原创 2016-05-14 17:13:21 · 488 阅读 · 0 评论 -
hdu 6162 Ch’s gift 树链剖分 + 离线查询
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6162题意:给定一个树形图,有点权,每次一个查询,问从点vv到uu路径上点权在[a,b][a,b]之内的和思路:直接查询好像好像不太行。把每个询问拆成两个:求路径上点权在[0,a−1][0,a-1]内的和sum1sum_1与点权在[0,b][0,b]的和sum2sum_2,那么sum2−sum1sum_2-s原创 2017-10-16 14:59:46 · 359 阅读 · 0 评论