
树
文章平均质量分 65
🌳
阐上
hh厨
展开
-
树上滚动数组(优化树结点的维度)
树上滚动数组(优化树结点的维度)原创 2022-05-05 12:21:10 · 305 阅读 · 0 评论 -
【CF698B】B. Fix a Tree(并查集,贪心)
修树题意:给你一颗树的 边 关系( i 点 与 PiP_iPi 之间有一条边 ),有可能 边 关系有错,问你用最少的更改次数让这颗树合法,输出更改后的 关系。如果 i==Pii == P_ii==Pi ,表示这个点是根节点。思路:先贪心,本来已经合法的关系我们显然不需要变动,先连结。标记所有合并过程中不合法的关系。之后对于不合法的关系,我们找到一个合法的(也就是和它不在同一个连通块中,因为在同一个块中再加一条边就存在环了,不合法)其他块与它连结。如果暴力找的话会 n2n^2n2 超时原创 2022-04-09 18:33:16 · 248 阅读 · 0 评论 -
【CF1656E】 E. Equal Tree Sums(构造、推导)
相等树和题意:给定一颗树,让你给树每个结点赋予 非零 权值。使得在这棵树上任意删一个点,剩下的不同连通块的权值和都相同。思路:看似很简单,但不是盲目构造样例,是需要推导的题。结论是:把这颗树根据二分图染色,任意相邻点权值是 1 和 -1。同时对于某点,它最终权值需要 乘上自身的度数。证明这个的正确性需要推导,和大胆猜想。参考博客:抽象点的思路,类似网络流的水流简洁点的推导文中 sumisum_isumi 指的是 以 i 为根的子树的总权值。详细推导Code:Code:Cod原创 2022-04-07 16:01:47 · 338 阅读 · 0 评论 -
【CF1336A】A. Linova and Kingdom(贪心)
利诺瓦和王国题意:给定一颗树,在树上挑选 K 个结点作为工业城市。每个工业城市能得到的快乐值为:从自身走到根节点 1 的最短路径上能经过的 非工业城市 的个数。求最大能获得的总快乐值。思路:经典的 K 城市放置,代表这题很有可能是个贪心。我们很简单能想到,在深度大的点放工业城市,这样更快乐。但也要考虑到 若某点放城市,它会影响它以下的所有点,让它们的快乐值都 -1。综合以上,我们需要的是深度尽可能大的点,同时自身以下结点个数少的点(影响小)。根据这个排序即可。可以发现 dep -原创 2022-04-07 15:35:42 · 369 阅读 · 0 评论 -
【CF700B】B. Connecting Universities (贪心)
连通大学题意:给定一棵树,和 2k 所大学的位置,大学在树的结点上(不能重叠),要求你给大学两两分组匹配,求 Max(∑i=02k−1disti∗2,i∗2+1)Max(\sum_{i=0}^{2k-1}{dist_{i*2,i*2+1}})Max(∑i=02k−1disti∗2,i∗2+1)即最大的 全部 匹配大学 之间距离总和,距离算的是树上最短路径。思路:一开始完全没有思路…这个贪心的想法也太极限了。从边的方向思考,考虑一条边能对答案产生的最大贡献.设一条边左边累计原创 2022-04-07 09:46:19 · 226 阅读 · 0 评论 -
【CF1592C】C. Bakry and Partitioning(异或)
烘焙和分割题意:给定一颗树,树中每个节点都有一个 value 值。再给一个 K ,要求你至少删除树中 1 条边,最多删 K - 1 条边,使得对于删除后的森林,每个连通块内部点 value 异或的值相同。思路:分情况讨论:所有点异或值为零显然这种情况下,根据异或性质,我们任意删一条边,边两端连通块的异或值都相同。所以是 YES。所有点异或值不为零,假设为 X不为零我们就得探讨下。首先不切不行,至少切一条边。只切一条边的话,要保证两块异或相同,那异或总值只能为 0,矛盾。原创 2022-04-06 17:47:26 · 373 阅读 · 0 评论 -
【CF763A】 A. Timofey and a tree(贪心)
蒂莫菲和一棵树题意:给定一棵树,树中任意一个点都有一个颜色。问能否找到一个点,以这个点为根节点产生的树中所有子树(不包括根节点这颗树)的结点颜色都相同。思路:可以 dp 写也可以贪心写,但 dp 维护起来很麻烦…贪心的方法是观察性质,如果 以根节点产生的树中所有子树的结点颜色都相同,那各个子树内包含的都是两端点颜色相同的边,那两端点颜色不同的边,显然就在根节点与子树之间。所以我们只需要统计任意一个点连出去的边,有多少条颜色不同,和给定的树中颜色不同的边数比较,如果该点满足相等,自原创 2022-04-06 17:05:37 · 340 阅读 · 0 评论 -
P5022 [NOIP2018 提高组] 旅行(基环树应用)
无向图的双连通分量问题、基环树应用、dfs递归处理原创 2021-12-26 00:43:51 · 553 阅读 · 2 评论 -
Codeforces Round #769 (Div. 2):E1. Distance Tree (easy version)(树的中心,枚举)
距离树能力有限,只看懂了easy version…题意:给定一颗 n 个结点的树,d(v)d(v)d(v)代表这颗树上任意点到 1 点的最短距离定义f(x)f(x)f(x)表示:在这棵树上任意两点间加一条权值为 x 的边后,Max1<=v<=nd(v)Max_{1<=v<=n}d(v)Max1<=v<=nd(v)的值对于所有的 x 取值于1~n ,求出对应f(x)f(x)f(x)分析:在树上如何加一条边,能使得各个点到 1点 的最短距离最大值最小思路原创 2022-01-31 22:31:54 · 894 阅读 · 0 评论 -
2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)1011 Jumping Monkey
2021中国大学生程序设计竞赛(CCPC)- 网络选拔赛(重赛)1011 Jumping Monkey题意:有n个点,每个点都有一个不重复的权值;以 iii 点作为起点,抵达一个终点 jjj ,如果如果 iii 到 jjj 这条路径存在,且路径上所有的点的权值(包括 iii 点)都不大于 jjj 点的权值,iii 点的累计值就 +1;每个点初始都可以到达本身,所以初始累计值都为 1。最后输出各个点的累计值思路:很显然从权值最大的点出发,无法抵达任何一个点,它的累计值为 1。逆向思考一下,与权值最原创 2022-01-13 13:17:45 · 646 阅读 · 0 评论