树
A1847225889
在一次次翻车中吸取教训……
展开
-
6729. 【2020.06.16省选模拟】T3 树论
题目 正解 一个节点的SGSGSG值是它子树中的点到它的最大距离(即最大深度)。 对于所有的根,可以发现一个节点的子树内最大深度至多有两种。具体证明可以考虑两种最大深度从两个不同的方向伸出,父亲边至多会占据一个方向。 先将ilnil的做法: 对于每个节点记下这两个最大深度以及它们的方向。 以111为根建树。假设当前的根为rtrtrt,可以发现只有111到rtrtrt路径上的点的最大深度方向不是向下。 树链剖分,对于重链上的点,处理出不在重儿子方向上的最大深度;对于轻链,找到不是往rtrtrt方向的最大深度原创 2020-06-19 08:06:12 · 271 阅读 · 0 评论 -
6706. 【2020.06.07省选模拟】tree
题目 正解 老势能分析了。 联通块个数等于点数减边数。 用个数据结构维护权值大于等于某个值的点数和边数有多少个。边的权值定义为两边连着的点的点权的最小值。 点权的维护随便搞,重点是边权的维护。 随便定一个根,对于每个点用个set维护有多少个儿子的权值大于它。 在权值变大的时候,对于父亲边就直接做,对于儿子边,将原来权值大于它,现在权值小于等于它的儿子暴力修改。 势能分析,设势能为每个点的儿子大于它的个数。每次询问,势能顶多加一。 所以时间复杂度为O((n+q)lgn)O((n+q)\lg n)O((n+原创 2020-06-12 17:30:26 · 282 阅读 · 0 评论 -
6380. 【NOIP2019模拟2019.10.06】小w与最长路(path)
题目 题目大意 给你一棵树,对于每一条边,求删去这条边之后,再用一条边(自己定)连接两个连通块,形成的树的直径最小是多少。 正解 首先,将这棵树的直径给找出来。显然,如果删去的边不在直径上,那么答案就是直径。 接下来考虑删去的边在直径上的情况。 自己连的边应该要是两棵树的直径的中点(中点就是直径上到端点最大距离最小的点)。 答案就是两棵树的直径的一半(当然这是粗略的说法)加上边权,和两棵树内部的...原创 2019-10-22 12:35:41 · 187 阅读 · 0 评论 -
[JZOJ6011] 【NOIP2019模拟1.25A组】天天爱跑步
题目 描述 题目大意 给你平面直角坐标系上的nnn个起点和nnn个终点,(x,y)(x,y)(x,y)每次只能走到(x,y+x)(x+y,y)(x,y−x)(x−y,y)(x,y+x)(x+y,y)(x,y-x)(x-y,y)(x,y+x)(x+y,y)(x,y−x)(x−y,y)这些点,每次花费的时间为111。 在走的过程中必须一直在第一象限。 起点和终点没有对应,即可以从某个起点到达任意...原创 2019-01-26 16:44:47 · 299 阅读 · 1 评论