【学习笔记】树形dp

Nearest Leaf

The Chocolate Spree

Power Tree

Pairs of Paths

  • sb数据结构题
  • 暴力
  • 分两种形态暴力
  • 评分3000不过分吧

Nested Rubber Bands

  • 巧妙的题目
  • 菊花图显然是合法的
  • 把菊花图拼起来也是合法的
  • 手玩可以得到
  • 若干菊花图拼起来的子图只能连一条边出去
  • 等价于,菊花图的中心必须拼成一条链
  • 毋宁称之为构造题
  • 可以树形dp
  • 注意细节
  • 复杂度 O ( n ) O(n) O(n)

Distance Tree

  • 巧妙的题目
  • 假定其中一个端点是 1 1 1
  • 另一个端点是 u u u
  • 考虑二分答案 l l l
  • 因为这样做比较顺
  • u u u求出来
  • 然后考虑那些深度比 l l l大的叶子
  • 把绝对值拆开就可以 O ( 1 ) O(1) O(1)判了
  • 复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)
  • vscode好评
  • 不保证是正解。不保证和题解一样优秀。

Two-Paths

  • 行百里者,半九十
  • 对不起我又要骂了sb数据结构
  • 倍增+暴力
  • d p [ u ] dp[u] dp[u]表示从 u u u出发遍历完子树的最大贡献
  • d p 2 [ u ] dp2[u] dp2[u]表示从 u u u出发遍历完整个子树的最大贡献
  • d p [ u ] , d p 2 [ u ] dp[u],dp2[u] dp[u],dp2[u]是一个求和的形式
  • 这启发我们用倍增+暴力统计答案
  • 代码很恶心就不说了
  • vscode好评
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值