随笔分类 -  数据结构--树上启发式合并dsu on tree

摘要:题:https://www.luogu.com.cn/problem/P1600 题意:给定n个节点的树和每个节点会在a[i]时刻进行观察,然后再给出m个点沿从S->T的简单路径移动,所有点同时开始且每一秒经过一条边,问每一个节点上的观察员会观察的几个点? 分析:我们考虑S到lca(S,T)再到T的 阅读全文
posted @ 2020-04-22 00:15 starve_to_death 阅读(376) 评论(0) 推荐(0)
摘要:题:https://www.luogu.com.cn/problem/P4149 题意:找出树上点对距离恰好为k的点对,且点对之间的距离最小,要是不存在输出-1; 分析:对于每次的dfs的每次u,对于u的每一个孩子v,先计数路径,再把v的子树含的路径更新到桶里。 #include<bits/stdc 阅读全文
posted @ 2020-04-10 21:26 starve_to_death 阅读(286) 评论(2) 推荐(0)
摘要:题:https://codeforces.com/problemset/problem/208/E 题意:给定树,问m个询问,每个询问vi,pi,要查询和vi有pi级相同祖先的对数; 分析:支持离线且没修改,考虑dsu,,因为树每个节点向上的路径是一定的,所以我们吧询问点vi转移到pi级祖先上,然后 阅读全文
posted @ 2020-04-07 23:35 starve_to_death 阅读(124) 评论(0) 推荐(0)
摘要:题:https://ac.nowcoder.com/acm/contest/4853/E 题意:对于一对点(u,v)要是dis(u,v)==k,就会对这对点的LCA产生a[x]+a[y]的贡献(LCA!=u&&LCA!=v) 分析:简单的dsu,把每个点当作LCA去统计子树深度个数,经过LCA的路径 阅读全文
posted @ 2020-03-30 11:53 starve_to_death 阅读(193) 评论(0) 推荐(0)
摘要:题:https://ac.nowcoder.com/acm/contest/4010/E?&headNav=acm 分析:dsu。贪心方法:考虑插入一个值x,对总体贡献,若查找在序列中左边有值 l ,则+加上(x-l)2,若右边有值r,则加上(r-x)2,若俩边都有值,则要减去插入失去的(r-l)2 阅读全文
posted @ 2020-01-26 15:47 starve_to_death 阅读(168) 评论(0) 推荐(0)
摘要:题:https://codeforces.com/contest/570/problem/D 题意:给定一个以1为根的n个节点的树,每个点上有一个字母(a~z),每个点的深度定义为该节点到1号节点路径上的点数.每次询问a,b查询以a为根的子树内深度为b的节点上的字母重新排列之后是否能构成回文串. 分 阅读全文
posted @ 2020-01-26 11:39 starve_to_death 阅读(162) 评论(0) 推荐(0)
摘要:题:https://codeforces.com/problemset/problem/600/E 题意:一棵树有n个结点,每个结点都是一种颜色,每个颜色有一个编号,求树中每个子树的最多的颜色编号的和,对于每个结点都输出答案。 分析:考虑暴力算法,对于每个节点只是清空计数数组,再对其子树颜色进行统计 阅读全文
posted @ 2020-01-25 16:21 starve_to_death 阅读(192) 评论(0) 推荐(0)