树形结构
树上的一些技巧和题型
不拿牌不改名
ACM刚入门,博客写错了可以留言给我啊
展开
-
树形结构+拓扑思维 Codeforces Round #285 (Div. 2) C题 Misha and Forest
Misha and ForestLet’s define a forest as a non-directed acyclic graph (also without loops and parallel edges). One day Misha played with the forest consisting of n vertices. For each vertex v from 0 to n - 1 he wrote down two integers, degreev and sv, wer原创 2020-06-21 17:13:58 · 340 阅读 · 0 评论 -
构造思维+树形结构 Codeforces Round #612 (Div. 2) D题 Numbers on Tree
Numbers on TreeEvlampiy was gifted a rooted tree. The vertices of the tree are numbered from 1 to n. Each of its vertices also has an integer ai written on it. For each vertex i, Evlampiy calculated ci — the number of vertices j in the subtree of vertex i原创 2020-06-16 17:32:18 · 203 阅读 · 0 评论 -
树形结构 Codeforces Round #629 (Div. 3) E题
Tree QueriesYou are given a rooted tree consisting of n vertices numbered from 1 to n. The root of the tree is a vertex number 1.A tree is a connected undirected graph with n−1 edges.You are given m queries. The i-th query consists of the set of ki dist原创 2020-06-09 16:40:18 · 763 阅读 · 0 评论 -
树形结构+贪心思维 黑白树
题目描述:一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1。树上每个节点i对应一个值k[i]。每个点都有一个颜色,初始的时候所有点都是白色的。你需要通过一系列操作使得最终每个点变成黑色。每次操作需要选择一个节点i,i必须是白色的,然后i到根的链上(包括节点i与根)所有与节点i距离小于k[i]的点都会变黑,已经是黑的点保持为黑。问最少使用几次操作能把整棵树变黑。输入描述:第一行一个整数n (1 ≤ n ≤ 10^5)接下来n-1行,每行一个整数,依次为2号点到n号点父亲的编号。最后一行原创 2020-05-12 17:56:01 · 605 阅读 · 0 评论 -
树形结构+贪心思维 赛道修建(洛谷 P5021)
赛道修建题目大意:在一颗树上找到m条路径,求这m条路径长度的最小值最大;每条边只能经过一次;二分路径长度d非常显然;就是怎么求树上路径长度大于二分d的个数非常难;首先知道每条边只能用一次,所以每个点到其父亲结点的边也只能走一次,所以每个点往上走的话,只能带一条边,所以要尽量保证带的这条边最大;当树是两层时(只有一个根和很多儿子结点),要凑出更多的长度大于d的路径,可以先由小到大排序...原创 2020-04-28 20:26:27 · 124 阅读 · 0 评论 -
树形结构+前缀和 [JLOI2012]树(洛谷 P3252)
题目描述在这个问题中,给定一个值 s 和一棵树。在树的每个节点有一个权值,第 i 个点的权值a_i,问有多少条路径的节点权值总和为 s。路径中节点的深度必须是升序的。假设节点 1 是根节点,根的深度是 0,它的儿子节点的深度为 1。路径不必一定从根节点开始。输入格式第一行有两个整数 n 和 s,其中 n 是树的节点数。第二行有 n 个整数,第 i 个整数 a_i 表示节点 i 的权值。接...原创 2020-04-11 16:39:00 · 275 阅读 · 0 评论 -
树形结构+思维 树的重量(洛谷 P1268)
树的重量题目比较长,不放题面了;题目比较难理解,简单来说就是给你n个叶子结点,然后给你这些点互相到达的最短距离,让你组成一颗树(这颗树唯一),求树的总路径长度(称为重量);这题相当思维,而且必须画图才能理解,直接说结论吧,每个叶子结点可以从原来的路径上分叉得到,加这个叶子结点带来的路径长度增加为:这里原来的路径为(1,j),新增的叶子结点为 i ;ans=(dis(1,i)+dis(i...原创 2020-04-07 23:07:37 · 176 阅读 · 0 评论 -
树的直径+思维【XR-3】核心城市(洛谷 P5536)
【XR-3】核心城市题目描述X 国有 n 座城市,n−1 条长度为 1 的道路,每条道路连接两座城市,且任意两座城市都能通过若干条道路相互到达,显然,城市和道路形成了一棵树。X 国国王决定将 k 座城市钦定为 X 国的核心城市,这 k 座城市需满足以下两个条件:这 k 座城市可以通过道路,在不经过其他城市的情况下两两相互到达。定义某个非核心城市与这 k 座核心城市的距离为,这座城市与 ...原创 2020-03-29 22:24:24 · 521 阅读 · 0 评论 -
树形结构+递推或树的重心 会议(洛谷 P1395 )
会议题目描述有一个村庄居住着n个村民,有n-1条路径使得这n个村民的家联通,每条路径的长度都为1。现在村长希望在某个村民家中召开一场会议,村长希望所有村民到会议地点的距离之和最小,那么村长应该要把会议地点设置在哪个村民的家中,并且这个距离总和最小是多少?若有多个节点都满足条件,则选择节点编号最小的那个点。输入格式第一行。一个数n,表示有n个村民。接下来n-1行,每行两个数字a和b,表示村...原创 2020-03-27 14:48:43 · 286 阅读 · 0 评论 -
树的最长路径(最远点对,树的直径)学习笔记
树的最长路径紫书第281页;紫书这章讲的就是树上的动态规划,所以显然,求这个可以用动态规划求;在求这个之前,要明白无论是树的最大独立集,树的重心,树的最长路径都是无根树,说白了就是没有告诉你根结点是什么。所以不能指定 1 号点就一定为要求路径中的起点或必经之点;这里还有一种dfs的写法,先随便找一个点 p 为起点,用dfs求出 p 的最远点 q,然后再用 q 为起点,找出最远点 w ,...原创 2020-02-25 19:47:19 · 842 阅读 · 0 评论 -
树的重心
树的重心给定一颗树,树中包含n个结点(编号1~n)和n-1条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。输入格式第一行包含整数n,表示树的结点数。接下来n-1行,每行包含两个整数a和b,表示点a和点b之间存在一条边。输出格式输出一个整数...原创 2019-11-06 17:13:52 · 238 阅读 · 0 评论 -
树形结构+思维 对称二叉树(洛谷 P5018)
对称二叉树题目描述一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树:二叉树;将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等。现在给出一棵二叉树,希望你找出它的一棵子树,该子树为对称二叉树,且节点数 最多。请输出这棵子树的节点数。注意:只有树根的树也是对称二叉树。本题中约定,以节点 T 为子树根的一棵“子 树”指的是:节点T 和它的全部后代节点构成的二叉...原创 2020-03-25 20:24:09 · 656 阅读 · 0 评论