
换根dp
lalalzo
Acmer 加油
展开
-
[牛客] Tree-换根dp(预防加法取模导致等0)
链接:https://ac.nowcoder.com/acm/problem/19782 题目:修修去年种下了一棵树,现在它已经有n个结点了。 修修非常擅长数数,他很快就数出了包含每个点的连通点集的数量。 澜澜也想知道答案,但他不会数数,于是他把问题交给了你。 思路是很简单的换根dp,先求出以1为根的值,然后进行撤回操作再换根,这里最要注意的坑点是 dp【v】+1%mod会等于0(加法会导致模等于0),所以我们这里需要特判处理。 #include <iostrea...原创 2021-07-06 19:36:50 · 224 阅读 · 0 评论 -
换根dp求树所有节点的最小深度
链接:https://ac.nowcoder.com/acm/contest/18072/A 牛妹有一张连通图,由n个点和n-1条边构成,也就是说这是一棵树,牛妹可以任意选择一个点为根,根的深度为0,对于任意一个非根的点,我们将他到根节点路径上的第一个点称作他的父节点,例如1为根,1-4的;路径为1-3-5-4时,4的父节点是5,并且满足对任意非根节点,,整棵树的价值,即所有点的深度和 牛妹希望这棵树的W最小,请你告诉她,选择哪个点可以使W最小 题目:求树所有节点的深度累加的最小值(选择一个点为根) .原创 2021-07-05 22:51:54 · 193 阅读 · 0 评论 -
牛客挑战赛30 C 小G砍树 换根dp+组合
链接:https://ac.nowcoder.com/acm/contest/18072/E 题目:给你一棵n个节点的带标号无根树。每次,你可以选择一个度数为1的节点并将它从树上移除。问总共有多少种不同的方式能将这棵树删到只剩 1 个点。两种方式不同当且仅当至少有一步被删除的节点不同。 思路:首先我们把他看成有根树来求解,一般我们以1为根,也就是说1结点是最后才去除的,我们以dp【i】来表示去除i子树有多少种方式,dp[i]=(v是i的儿子);每次统计完答案以后都要sizei-sizev,很容易想到这个.原创 2021-07-05 22:34:08 · 119 阅读 · 0 评论