
在线倍增法
v5zsq
新的一天,新的不会
展开
-
HDU 5875 Function(单调栈+在线倍增法)
Description n支队伍比赛,每支队伍要和其他n-1支队伍各比一场,赢得一份,输不得分,现给出n支队伍的最终得分,问是否存在满足此得分的情况 Input 第一行一整数T表示用例组数,每组用例首先输入队伍数n,之后n个整数ai表示第i支队伍的最终得分(T<=50,n<=50000,0<=ai < n) Output 如果存在满足此得分的情况则输出“It seems to have n原创 2016-09-16 10:43:15 · 467 阅读 · 0 评论 -
HDU 6110 路径交(线段树+在线倍增LCA)
Description给定一棵nn个点的树,以及mm条路径,每次询问第LL条到第RR条路径的交集部分的长度(如果一条边同时出现在22条路径上,那么它属于路径的交集)。Input第一行一个数nn(n<=5⋅105)(n<=5\cdot 10^5)接下来n−1n-1行,每行三个数x,y,zx,y,z,表示一条从xx到yy并且长度为zz的边 第n+1n+1行一个数mm(m<=5⋅105)(m<=5\cd原创 2017-09-28 16:53:07 · 713 阅读 · 0 评论 -
HDU 6115 Factory(在线倍增LCA)
Description我们将AA省简化为由NN个城市组成,某些城市之间存在双向道路,而且AA省的交通有一个特点就是任意两个城市之间都能通过道路相互到达,且在不重复经过城市的情况下任意两个城市之间的到达方案都是唯一的。聪明的你一定已经发现,这些城市构成了树这样一个结构。现在百度陆续开了许许多多的子公司。每家子公司又会在各城市中不断兴建属于该子公司的办公室。由于各个子公司之间经常有资源的流动,所以公司员原创 2017-09-28 21:28:52 · 493 阅读 · 0 评论 -
BZOJ 4568 幸运数字(在线倍增法+线性基)
DescriptionAA国共有nn座城市,这些城市由n−1n-1 条道路相连,使得任意两座城市可以互达,且路径唯一。每座城市都有一个幸运数字,以纪念碑的形式矗立在这座城市的正中心,作为城市的象征。一些旅行者希望游览A A 国。旅行者计划乘飞机降落在x x 号城市,沿着x x 号城市到y y 号城市之间那条唯一的路径游览,最终从y y 城市起飞离开A A 国。在经过每一座城市时,游览者就会有机原创 2017-12-22 19:01:50 · 542 阅读 · 0 评论 -
HDU 6203 ping ping ping(在线倍增LCA+BIT)
Description给出一棵n+1n+1n+1个节点的树,要求破坏尽可能少的点使得所给mmm对点对均不可互达Input第一行一整数nnn,之后nnn行每行两个整数u,vu,vu,v表示一条树边,然后输入一整数mmm,最后mmm行每行两个整数u,vu,vu,v表示需要使得u,vu,vu,v不可互达(3≤n≤104,1≤p≤5⋅104)(3≤n≤104,1≤p≤5⋅104)(3\le n...原创 2018-02-14 16:59:21 · 447 阅读 · 0 评论 -
计蒜客 17120 Xor(在线倍增LCA)
Description给出一棵nnn个节点的树,第iii个节点点权为aiaia_i,有qqq次查询,每次给出三个整数a,b,ka,b,ka,b,k,假设aaa到bbb的树上简单路径编号为t0,t1,....,tmt0,t1,....,tmt_0,t_1,....,t_m,要查询t0,tk,...,tpk(pk≤m)t0,tk,...,tpk(pk≤m)t_0,t_k,...,t_{pk}(pk...原创 2018-03-16 19:13:17 · 332 阅读 · 0 评论 -
HDU 2586 How far away ?(树形DP+在线倍增LCA)
Description给出一棵nnn个节点的树,边有边权,mmm次查询,每次查询树上两点简单路径长度Input第一行一整数TTT表示用例组数,每组用例首先输入两个整数n,mn,mn,m表示点数和查询数,之后n−1n−1n-1行每行三个整数u,v,wu,v,wu,v,w表示u,vu,vu,v之间有一条权值为www的边,最后mmm行每行输入两个整数u,vu,vu,v表示查询u,vu,vu,...原创 2018-04-03 14:34:36 · 223 阅读 · 0 评论 -
HDU 6393 Traffic Network in Numazu(树形DP+在线倍增LCA+BIT+并查集)
Description给出一个nnn个点nnn条边的连通无向图,边有边权,qqq次操作,操作分两种0 X Y0 X Y0\ X\ Y:将第XXX条边边权修改为YYY1 X Y1 X Y1\ X\ Y:查询X,YX,YX,Y两点间的最短路Input第一行一整数TTT表示用例组数,每组用例首先输入两个整...原创 2018-09-10 13:24:56 · 293 阅读 · 0 评论 -
HDU 6430 Problem E. TeaTree(在线倍增LCA)
Description给出一棵nnn个节点的有根树,根节点为111,每个点有点权viviv_i,两个不同的点i,ji,ji,j对其LCALCALCA得分的贡献为gcd(vi,vj)gcd(vi,vj)gcd(v_i,v_j),每个点初始得分为−1−1-1,一个点的最终得分为所有对其贡献的分数的最大值,问每个点的最终得分Input第一行一整数nnn表示点数,之后输入n−1n−1n-1个整...原创 2018-09-13 19:38:53 · 264 阅读 · 0 评论 -
CodeForces 406 D.Hill Climbing (凸包-Graham扫描法+在线倍增LCA)
Description 有n个山坡,第i个山坡顶端坐标为(x[i],y[i]),一个山坡可以到另一个山坡当且仅当从另一个山坡可以看到这个山坡,现在给出q次查询,每次查询给出两个人所在山坡编号,如果左边的人可以到达右边人的山坡那右边人就不动等着左边人来,否则右边人往右到一个可以达到的最右边的山坡继续上面的步骤吗,问两个人最后停留的位置 Input 第一行一整数n表示山坡数量,之后n行每行两个整数原创 2017-07-18 18:44:53 · 614 阅读 · 0 评论 -
POJ 3728 The merchant(在线倍增LCA)
Description n个城市构成一棵树,每个城市都有一种商品有一个固定的价格,一个商人要从一个城市到另一个城市,他会在路途中选取一个城市购买这种商品然后在之后的某个城市卖掉以赚取差价,问最大差价 Input 第一行一整数n表示城市个数,之后n个整数val[i]表示第i个城市该种商品的价格,之后n-1行每行两个整数u和v表示u城市和v城市有路径,然后输入一整数q表示查询数,每次查询输入两个整原创 2017-07-26 23:01:24 · 954 阅读 · 3 评论 -
HDU 5266 pog loves szh III(在线倍增LCA+ST)
Description 给出一棵有n个节点的树,定义1为树根,有q次询问,每次询问区间[a,b]中所有节点的LCA Input 第一行为一整数n表示节点数,之后n-1行每行两个整数a和b表示树的一条边,然后是一整数q表示查询数,最后q行每行两个整数a和b表示查询[a,b]的LCA Output 对于每次查询,输出查询结果 Sample Input 5 1 2 1 3 3 4 4原创 2016-01-05 16:12:38 · 995 阅读 · 0 评论 -
HDU 5449 Robot Dog(树形DP+在线倍增LCA)
Description 一棵n个节点的树,树上有k个宝石,编号1~k,现在从起点s放一条电子狗,电子狗在每个节点往各邻接点走的概率相同,问电子狗按编号顺序拿完所有宝石的期望步数 Input 第一行一整数T表示用例组数,每组用例首先输入一整数n表示点数,之后n-1行每行两个整数u和v表示u和v在树上有一条边,之后输入一整数q表示查询数,最后q行每行首先输入一个整数k表示宝石数量,然后输入一整数s原创 2016-08-25 14:07:06 · 1340 阅读 · 2 评论 -
HDU 5770 Treasure(在线倍增LCA+扫描线+线段树)
Description 给定一棵有n个节点的树,有m个宝箱和对应的钥匙,它们可能在不同的节点上,也可能在相同的节点上,每个宝箱都有对应的权值(可为负数),现要求在树上选一条简单路径,每到一个节点时,必须先拿走该节点所有的钥匙,然后开启该节点所有能开启的宝箱,求能得到的最大权值和 Input 第一行一整数T表示用例组数,每组用例首先输入两个整数n和m分别表示点数和宝箱数,之后n-1行每行两个整数原创 2016-08-10 13:31:32 · 955 阅读 · 0 评论 -
POJ 1330 Nearest Common Ancestors(在线倍增LCA)
Description 给出一棵n个节点的有向树,求两点u,v的最近公共祖先 Input 第一行为一整数T表示用例组数,每组用例第一行为一整数n表示节点数,之后n-1行每行两个整数a和b表示a到b有一条边,最后为两个整数u和v表示查询 Output 输出lca(u,v) Sample Input 2 16 1 14 8 5 10 16 5 9 4 6 8 4 4 10原创 2016-01-05 17:13:53 · 579 阅读 · 0 评论 -
POJ 3417 Network(在线倍增LCA+树形DP)
Description 先给出一棵有n个节点的无根树,然后下面再给出m条边,把这m条边连上,现在可以去掉一条树边和一条新边,问有多少种方案能使树断裂 Input 第一行为两个整数n和m分别表示树的节点数和新加的边数,之后n-1行每行两个整数a和b表示树的边,最后m行每行两个整数a和b表示在节点a和节点b之间加一条新边 Output 输出删去一条树边和一条新边能够使得树断裂的方案数 Sam原创 2016-01-05 16:29:35 · 741 阅读 · 0 评论 -
CodeForces 733 F.Drivers Dissatisfaction(最小生成树-Kruskal+在线倍增法)
Description 给出n个点m条边,每条边有边权,第i条边边权为w[i],可以花费c[i]使得第i条边边权减一,在花费不超过S的情况下求最小生成树 Input 第一行两个整数n和m分别表示点数和边数,之后m个整数w[i]表示第i条边的边权,之后m个整数c[i]表示减少第i条边单位边权需要的花费,之后m行每行两个整数u和v表示u和v之间有一条边,最后一行一整数S表示总花费(2<=n<=2e原创 2017-05-04 16:29:49 · 806 阅读 · 0 评论 -
HDU 6109 数据分割(并查集+set+在线倍增法)
Description小ww来到百度之星的赛场上,准备开始实现一个程序自动分析系统。这个程序接受一些形如xi=xjxi=xj或xi≠xjxi≠xj的相等/不等约束条件作为输入,判定是否可以通过给每个ww赋适当的值,来满足这些条件。输入包含多组数据。 然而粗心的小ww不幸地把每组数据之间的分隔符删掉了。 他只知道每组数据都是不可满足的,且若把每组数据的最后一个约束条件去掉,则该组数据是可满足的。请原创 2017-09-28 16:35:20 · 526 阅读 · 0 评论 -
CodeForces 609 E.Minimum spanning tree for each edge(最小生成树-Kruskal+在线倍增LCA)
Description 给出一个n个点m条边的无向连通图,对于每一条边,问包含该条边的最小生成树权值和 Input 第一行两个整数n和m表示点数和边数,之后m行每行三个整数u,v,w表示u和v之间有一条边权为w的边(1<=n<=2e5,n-1<=m<=2e5,1<=w<=1e9) Output 输出m个整数,第i个整数表示含第i条边的最小生成树权值和 Sample Input 5 7原创 2017-04-20 11:50:02 · 997 阅读 · 0 评论 -
Newcoder 4 C.Alliances(在线倍增LCA+二分)
Description树国是一个有nnn个城市的国家,城市编号为111∼nnn。连接这些城市的道路网络形如一棵树,即任意两个城市之间有恰好一条路径。城市中有kkk个帮派,编号为111∼kkk。每个帮派会占据一些城市,以进行非法交易。有时帮派之间会结盟,这就使得城市更加不安全了。同一座城市中可能有多个帮派。当一些帮派结成联盟时,他们会更加强大,同时也更加危险。他们所控制的城市数会显著增加。具体地...原创 2018-11-01 12:14:40 · 1577 阅读 · 0 评论