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);

最新文章

  1. Lambda GroupBy Sum
  2. Java中为什么有abstract interface 修饰类?
  3. Portal
  4. VMware系统运维(五)安装SSO vCenter Single Sign-On
  5. Kqueue与epoll机制
  6. tps 与 事务平均响应时间关系对答
  7. Apache Spark RDD(Resilient Distributed Datasets)论文
  8. 【重点突破】——Cookie的使用
  9. C#防盗链处理类的代码
  10. mysql几种关联的区别
  11. Springboot多数据源配置--数据源动态切换
  12. html 跳转页面传参、点击获取DOM参数
  13. Vue 初识Vue
  14. 【SQL】178. Rank Scores
  15. 服务器端cs文件
  16. ror中间一些单复数的规则
  17. .net core EF Cde First
  18. [Apollo Server] Get started with Apollo Server
  19. 迷你迅雷+SqlServer2008r2下载
  20. axios拦截器+mockjs

热门文章

  1. Android面试-字节一面
  2. 安装CUDA
  3. 学习Java Day12
  4. dvwa靶场
  5. 分享手机上一款超多功能的APP(含428个功能):宇宙工具箱
  6. 初学 Socket.io
  7. 基于JavaScript的OpenGL 01 之Hello Triangle
  8. Postgresql模板数据库之template1 和 template0
  9. 一步步入门Jenkins+Net Core3.1+Gitlab,实现 CICD
  10. LeetCode-537 复数乘法