LCA
文章平均质量分 86
alpc_qleonardo
这个作者很懒,什么都没留下…
展开
-
POJ 2763 Housewife Wind (LCA+线段树)
好久没有做树的题了…… 这题就是一棵树,给出两种操作,一是求两点最近距离,二是修改对应边的权值(是修改而不是更新)。 其实呢,这题用很多方法都可以做,什么树链剖分、LCT都行,但是我还是用了线段树,一是最近这个模板用的比较熟悉,而是练练LCA的写法。具体的话,首先在LCA预处理的时候,顺便把每个点的dfs序给求出来。之后求出被修改边的改变量,对其子树的所有点区间增加这个改变量,就达到了这个要求。求最短路的时候,直接d[x]+d[y]+d[lca(x,y)]即可。原创 2017-07-21 19:56:26 · 456 阅读 · 0 评论 -
CodeForces 1111E Tree(LCA + DP +树状数组)
大致题意:给你一棵包含n个节点的无根树,然后q个询问,每个询问给出一系列点和m、r。表示问你,把根设置为r的情况下,把给定点分为至多m部分,要求每一部分至少一个给定点,且一个部分中不能出现两个给定点一个点是另一个点的祖先,问划分的方案数。 还是一样,我们先简化问题,如果这时一个有根树,然后每次是固定根去询问。那么,令dp[i][j]表示只考虑给定点的前i个点,分为j个部分...原创 2019-02-09 16:40:53 · 550 阅读 · 2 评论 -
计蒜客 2018ICPC徐州站/gym 102012G Rikka with Intersection(组合计数 + 树链剖分 + 树状数组)
大致题意:给你一个包含n个点的树和m条路径。现在让你从这m条路径中选择k条路,使得这k条路径一定有至少一个公共交点,问选出这k条路径的方案数是多少。 最朴素的想法就是,每次查看一个点的贡献,也就是枚举这个公共点,然后看有多少个路径经过这个点,组合数求一下即可。但是这个错误也是很明显的,因为有可能同样一批路径,会有超过一个的公共点,这样的话就会重复计算。显然,如果有多个公共点的话,...原创 2018-12-02 22:47:15 · 889 阅读 · 0 评论 -
BZOJ 3238 差异(后缀自动机+树上统计)
中文题,题意自己看看吧。 看到表达式,难求的主要是lcp,任意两个后缀的lcp。即使用上后缀数组求这么多个lcp也是要超时的。但是这里如果用后缀自动机的性质,会好很多。 我们之前在介绍后缀自动机的时候说过,parent树表示父亲是儿子最长的一个后缀。那么,对于最长公共后缀的时候,两个字符串对应状态的LCA的len值,就是我们最长公共后缀的长度。即两个字符串往上走,都是走到他们的后缀,然后越往上长度越短,所以说第一个相同后缀一定是最长的,对应长度就是LCA的len。对于本题的原创 2018-03-22 08:46:05 · 334 阅读 · 0 评论 -
HihoCoder 1387 (树的直径)
第一次见到这个OJ…… 百家姓,也是很有意思的。就是给你一棵树,相当于某些节点被染上了同一种颜色,然后问你两种颜色,距离最远的两个点的距离是多少。 其实也没什么好说的,主要讲一个定理。两个图a和图b合并,假设图a的直径端点为a1、a2,图b的直径端点为b1、b2,那么新的直径的端点肯定是(a1,a2)、(b1,b2)、(a1,b1)、(a1,b2)、(a2,b1)、(a2,b2)六个中的一个。然后这题问两种颜色的最远距离,那么就只剩下四种情况,比较一下即可。那么现在问题就成了原创 2017-07-21 20:11:54 · 394 阅读 · 0 评论 -
HDU 6005 Pandaland 最小环(dijkstra+剪枝)
大致题意就是,给你一个图,然后让你在里面找一个最小的环。 说到找最小环,我很惊叹网上居然没有一个很好的算法。见到的算法都是用floyd的O(N^3)或者dijkstra的O(N^2logN)。但是这些显然都不能满足这题的要求。然后其实本题还加了一个条件,就是一定是一个平面图。一开始还拼命地去想平面图的性质,现在发现其实这些都无所谓。 这题,只要你联想到之前多校赛的第k小生成树的和,你就会知道如何下手。那题利用树边和非树边进行修改生成树和成环。这题也可以类似。由于要求是最小原创 2017-10-07 23:33:10 · 1230 阅读 · 6 评论 -
WOJ 651 离线LCA+链上修改+静态查询(树上前缀和?)
651. The Highest Peak Time Limit: 2 second Long long ago, Wuhan University locates a plain with the same height. There are NNN points in WHU which are connected by N−1N-1N−1 edges (just like原创 2017-04-25 11:55:54 · 517 阅读 · 0 评论 -
2017多校训练赛第九场 HDU 6162(LCA+Treap解法)
Ch’s gift Time Limit: 6000/3000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1091Accepted Submission(s): 412 Problem Description Mr. Cui is working off-cam...原创 2017-08-25 10:48:44 · 463 阅读 · 0 评论 -
HDU 5449 Robot Dog ACM/ICPC 2015 Changchun Online(数学期望+LCA)
大致题意是,给你一棵n个节点的树,树上有k个宝石,编号0~k-1,现在从起点s放一条电子狗,电子狗在每个节点往各邻接点走的概率相同,问电子狗按编号顺序拿完所有宝石的期望步数。 这题的关键就是如何考虑这个期望步数,因为如果没有一个好的考虑方式,一直在乱走,情况很多无法求出期望。所以我们考虑,对于从一个点u到一个点v的期望步数,肯定与lca有关,大致可以分为,从u到lca的期望步数,再从lca到v的期望步数,两者之后即为答案。再进一步思考发现从父亲往儿子走和从儿子往父亲走是两种不同的情况。于是考原创 2017-09-07 08:42:00 · 724 阅读 · 0 评论 -
HDU 6203 ping ACM/ICPC 2017 Shenyang Online(LCA+贪心)
现在想来好简单,还是太菜了…… 大致题意:给你一个树形网络,然后再给出一些点对,意思是这些点对不能相互连通,然后问最少坏掉多少个点,能够满足这些不连通的性质。 一开始的想法是对于一个点对,然后把路径上所有的点都加一,然后对应删除点权最大的点,然后相应剪掉关联的点对造成的贡献。但是很明显,确定了点权最大的点,但是无法在可行的时间内确定该点关联哪些点对,于是就不知道该怎么做了。其实即使能够解决这个问题,也不一定能够对,因为当有多个点权都是最大的时候,并不是随便取就能满足最优值的。原创 2017-09-10 21:09:41 · 475 阅读 · 0 评论 -
ZOJ 4097 Rescue the Princess(边双连通分量缩点 + LCA)
大致题意:给你一个可以有重边和自环的n个点m条边的无向图,给你q个询问。每个询问告诉你公主的位置和两个骑士的位置。现在骑士要去救公主,问是否存在从两个骑士出发点到公主的边不相交路径。 我已经标出来了,是边不相交,而不是点不相交。然后这是一个无向图,所以我们容易想到的第一件事情就是要进行缩点。关于缩点,这里用到的是边双连通分量的定义,至于点双连通分量、边双连通分量和连通分量的区...原创 2019-04-18 00:07:01 · 354 阅读 · 0 评论