点分治
文章平均质量分 74
Linda_yezi_coder
这个作者很懒,什么都没留下…
展开
-
2021牛客多校第一场 C——Cut the Tree
题目大意 给你一棵树,每个点都有一个权值,让你在所有点中选择一个点删除,使得剩下的子树的最长上升子序列长度最小 解题思路 首先如何求树上最长上升子序列 参考博客 如何删点 首先,我们任取一个点 ppp 考虑删除点 ppp 的结果,删除点 ppp 之后,我们只需要考虑 ppp 的子树的最长上升子序列长度,即为答案,同时我们记录一下是哪一棵子树的最长上升子序列最长,我们如果要删其他点的话,那要删去的点一定在这棵子树之中(因为你再删除了这棵子树上的点的其他点是没有意义的,并不会对答案造成贡献)。 然后,如何选取原创 2021-08-05 10:34:56 · 343 阅读 · 0 评论 -
AcWing 252. 树——点分治
题目链接 题目大意 给你一棵N个点的树,每条边都有一个权值,树上两个点的路径长度就是路径上的权值之和,问你路径长度不超过K的路径有多少条 解题思路 这是一棵无根树,我们考虑使用点分治的方法来解决 首先,我们任选一个节点作为根节点,这样,符合答案的路径有一下两种情况 1、经过这个根节点 2、不经过这个根节点 我们可以这样考虑,我们每次只算经过根节点的路径,这样我们递归这个根节点的子树,这样我们一直往下递归,可以做到不重不漏地找出所有合法路径 假设我们选了一个根节点rootrootroot,我们就需要得到一个数原创 2021-08-02 23:00:02 · 145 阅读 · 0 评论