
树链剖分
v5zsq
新的一天,新的不会
展开
-
POJ 3237 Tree(树链剖分+线段树)
Description 一棵树有n个节点,n-1条边,每条边有一个权值,三种操作 CHANGE i v:将第i条边的权值改成v NEGATE a b:将a到b路径上所有边的权值取反(x->-x) QUERY a b:查询a到b路径上所有边权值的最大值 Input 第一行一个整数t表示用例组数,每组用例第一行一个整数n表示点数,之后n-1行每行三个整数a b c表示a点和b点之间有一条权值原创 2015-12-06 13:16:42 · 819 阅读 · 0 评论 -
HDU 6200 mustedge mustedge mustedge(树链剖分LCA+并查集+BIT)
Description给出一个nnn个点mmm条边的无向图,无重边无自环两种操作1 u v:1 u v:1\ u\ v:在u,vu,vu,v之间加一条边2 u v:2 u v:2\ u\ v:查询uuu到vvv的路径上割边数量Input第一行输入一整数TTT表示用例组数,每组用例首先输入两个整数n,...原创 2018-02-14 16:19:20 · 310 阅读 · 0 评论 -
HDU 6162 Ch’s gift(树链剖分+线段树)
Description给出一棵nnn个节点的树,iii节点点权为cicic_i,mmm次查询,每次查询从sss节点到ttt节点的简单路径上,权值在区间[a,b][a,b][a,b]之间的点的权值和Input多组用例,每组用例首先输入两个整数n,mn,mn,m表示点数和查询数,之后输入nnn个整数cicic_i表示iii节点的点权,之后n−1n−1n-1行每行输入两个整数u,vu,vu,...原创 2018-02-10 16:01:46 · 435 阅读 · 4 评论 -
GYM 101142 G.Gangsters in Central City(树链剖分LCA)
Description给出一棵nn个节点的树,根节点为11表示水源,叶子节点表示住户,水沿着树边流向住户,两种操作1.+ v+\ v,表示vv住户有小偷进入,保证之前vv住户没有小偷 2.− v-\ v表示vv住户里的小偷离开,保证之前vv住户有小偷 每次操作结束后,问至少需要断几条树边可以使得所有有小偷的住户没有水喝,在断边数最少的前提下,使得没有进小偷但被断水的住户数最少I原创 2018-01-21 11:26:59 · 380 阅读 · 0 评论 -
HDU 5614 Baby Ming and Matrix tree(树链剖分+线段树)
Description 规定一个2*2的01矩阵A,能够进行如下2种变换: 旋转变换:做顺时针旋转,把A(i, j)移动到A(j,1- i) 替换:把矩阵A替换成B 给出1棵树,每一个树的节点上,有一个矩阵Ai,铭宝宝喜欢在树上玩矩阵的游戏。每一次在树上选择2个节点a, b,通过上述2种变换,把a到b路径上的矩阵,全部变成B矩阵。 假设旋转变换每次需要2秒,替换每次需要10秒。铭宝宝想知原创 2016-08-04 10:11:04 · 670 阅读 · 0 评论 -
POJ 2763 Housewife Wind(树链剖分+BIT)
Description 给你一棵树 2种操作0 x 求当前点s到x的最短路 然后当前的位置为x; 1 i x 将第i条边的权值置为x Input 第一行三个整数n,q和s表示点数,操作数和当前位置,之后n-1行每行三个整数a b c表示a,b之间有一条权值为c的边,最后q行每行一个操作 Output 对于每个查询,输出查询结果 Sample Input 3 3 1 1 2 1原创 2015-12-06 13:23:28 · 949 阅读 · 0 评论 -
BZOJ 2243 染色(树链剖分+线段树)
Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作。 Input 第一行包含2个整数n和m,分别表示节点数和操作数; 第二行包含n个正整数表示n个节原创 2015-12-06 10:53:45 · 545 阅读 · 0 评论 -
BZOJ 1036 树的统计Count(树链剖分+线段树)
Description 一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路径上的节点包括u和v本身 Input 输入的原创 2015-12-06 12:24:21 · 584 阅读 · 0 评论 -
FZU 2082 过路费(树链剖分+BIT)
Description 有n座城市,由n-1条路相连通,使得任意两座城市之间可达。每条路有过路费,要交过路费才能通过。每条路的过路费经常会更新,现问你,当前情况下,从城市a到城市b最少要花多少过路费。 Input 有多组样例,每组样例第一行输入两个正整数n,m(2 <= n<=50000,1<=m <= 50000),接下来n-1行,每行3个正整数a b c,(1 <= a,b <= n ,原创 2015-12-06 12:54:04 · 535 阅读 · 0 评论 -
LightOJ 1348 Aladdin and the Return Journey(树链剖分+线段树)
Description 一棵树,有n个点,每个点都有一个权值,有两种操作 0 a b ,问从节点a到节点b路径上所有点权值和 1 a b,把节点a权值改为b Input 第一行一个整数T表示用例组数,每组用例第一行为一个整数n表示树节点个数,第二行n个整数表示n个节点的权值1,之后n-1行每行两个整数a和b表示a和b有一条无向边,然后是一个整数m表示操作数,最后m行每行三个整数op u v原创 2015-12-06 12:38:29 · 620 阅读 · 0 评论 -
HDU 3966 Aragorn's Story(树链剖分+线段树)
Description 给一棵树,并给定各个点权的值,然后有3种操作 I C1 C2 K: 把C1与C2的路径上的所有点权值加上K D C1 C2 K:把C1与C2的路径上的所有点权值减去K Q C:查询节点编号为C的权值 Input 第一行为三个整数n,m和q分别表示点数,边数以及操作数,第二行n个整数表示n个节点的权值,之后m行每行两个整数a和b表示a和b之间有一条无向边,最后q行每原创 2015-12-06 13:00:19 · 639 阅读 · 0 评论 -
HDU 5893 List wants to travel(树链剖分+线段树)
Description给出一棵nnn个点的树,每条边有颜色,mmm次操作,操作分两种Change a b c:Change a b c:Change\ a\ b\ c:把从aaa点到bbb点路径上所有边的颜色变成cccQuery a b:Query a b:Query\ a\ b:查询a...原创 2018-04-05 12:37:22 · 332 阅读 · 0 评论