首页 > 编程语言 >牛客算法进阶——树形dp

牛客算法进阶——树形dp

时间:2023-01-29 13:56:18浏览次数:45  
标签:子树 进阶 min max 儿子 牛客 关联 dp

1. 小G有一个大树(求树的重心)

删除该点后最大连通块的节点数最小

设f[x]表示以x为根的子树大小,那么删除x之后的各子树大小为f[to]和n-f[x]

求max(max(f[to]),n-f[x])的最小值以及最小值所对的x

2.没有上司的舞会

儿子和父亲不能同时选择

设dp[x][0/1]表示x节点不选/选,他的子树快乐最大值是多少

dp[x][0] += max(dp[x][0],dp[x][1]);
dp[x][1] += dp[x][0];

最后答案为max(dp[x][0],dp[x][1]);

3.Cell Phone Network

一个点可以关联它与它相邻的点

设dp[x][0/1/2]表示被他的儿子/父亲/自己关联

dp[x][0] += min(dp[to][0],dp[to][2]) 特殊情况是儿子都是被儿子的儿子关联,没有儿子能关联他,这时要加上min(dp[to][2]-dp[to][0]) > 0
dp[x][1] += min(dp[to][0],min(dp[to][1],dp[to][2]))
dp[x][2] += min(do[to][0],dp[to][2]);

最后答案为min(dp[to][0],dp[to][2]);

4.二叉苹果树

选儿子必须选父亲->看成树上依赖背包

dp[x][j]表示i为根的子树内连续选j条边的最大苹果树

dp[x][j] = max(dp[x][j],dp[x][j-k-1]+dp[to][k]+w) 注意j要倒序处理,防止重复选择一颗子树

答案为dp[1][m]

5.树上子链

带权树上直径

经过x的最长链为最长链+次长链

6.Rinne Loves Edges

弱化版的吉吉国王

7.吉吉国王

最长长度最小(二分)

dp[x]表示把x子树内的叶子切断的最小代价

当w>规划的最长长度 dp[x] += dp[to];
当w<规划的最长长度 dp[x] += min(dp[to],w);

标签:子树,进阶,min,max,儿子,牛客,关联,dp
From: https://www.cnblogs.com/little-uu/p/17072488.html

相关文章

  • 2023牛客寒假算法基础集训营2
    《重点考察容斥原理的题目》  《L.TokitsukazeandThreeIntegers》  可以看的出:n很小,首先考虑暴力的方法:我们可以用两层for循环,将(ai*aj)%p......
  • DP做题合集
    第一题P7074[CSP-J2020]方格取数做法【dp】阶段因为只能往左不能往右,所以我们可以以一列作为一个阶段。又因为路线不能重复,所以在一列之中,只能一直向上或一直向下,所......
  • 快慢指针-牛客题霸模板速刷(BM6、BM7、BM8)
    快慢指针是指在链表或其他遍历对象中,通过两个相同方向的指针,即快指针和慢指针,以不同的速度遍历,从而实现寻找某个结点的目的。BM6-判断链表中是否有环题解:想象在环形跑道......
  • Wordpress后台网址安全
    wordpress固定的后台地址是网站/wp-admin/如果对方知道你是wp建站,然后很自然的就能知道你后台登录地址。然而你密码简单的话,很容易被黑。所以为了安全考虑,我们需要把这......
  • Wordpress主题twentytwelve修改首页文章摘要
    方法:网站后台->外观->编辑->找到content.php文件路径:wp-content/themes/twentytwelve/找到这一句:<?phpif(is_search())://Onlydisplayexcerptsforsearch.?......
  • Wordpress指定关键词手动添加链接
    方法:网站后台->外观->编辑->找到functions.php文件wp-content/themes/当前外观/functions.php在当前外观的functions.php末尾中添加以下代码:/**文章关键词指定链接......
  • 背包DP
    背包dp前言:由于普通的背包板子太板了,所以不多赘述,直接讲有价值的1.多重背包的二进制优化把一个物品的数量二进制拆分,例如有10个价值a的物品,我们把它拆成1+2+4+3个,这样......
  • 什么是DPT中的Odd Cycle问题?它会有什么问题?该如何解决?
    什么是DPT中的OddCycle问题?它会有什么问题?该如何解决?本文选自知识星球中的ICC2教程,更多IC干货见星球,同时星球QQ群还有分享高达40多万字的个人数字后端设计笔记,欢迎加入,......
  • 对 sosdp 的一些理解
    sosdp可以做的题目:对子集/超集的dp,这里对子集相关的部分做一下分析参考资料设\(f[mask][i]\)表示从低到高考虑到\(mask\)的第\(i\)位(从0开始算),而且这\(i+1\)......
  • 【面试高频题】难度 3.5/5,综合最短路的 DP 问题
    题目描述这是LeetCode上的​​1976.到达目的地的方案数​​,难度为中等。Tag:「最短路」、「拓扑排序」、「动态规划」你在一个城市里,城市由 个路口组成,路口编号为......