loj10155:数字转换:树的直径问题

题目连接

  • 树形DP专题

题目大意

  • 一个数字n,求n以内的数字之间 “约数和关系” 的最长链;
  • 约数和关系:一个数字 x x x 的约数和为 s [ x ] s[x] s[x]

题目分析

  • 约数和关系 可以想到,如果 s [ x ] < x s[x]<x s[x]<x ,他们之间可以连一条双向边;题目就转换为了一个树上,求直径。
  • 直径的定义: 树上最长的链。
  • 求树的直径的方法1:用两次dfs来完成
    d f s 1 dfs1 dfs1 从根出发,找到最远的叶子结点 k k k
    d f s 2 dfs2 dfs2 k k k 为根,出发,找到离他最远的点 t t t k k k t t t 之间的距离就是直径。
  • 求直径的做法2:dp的思维来实现
    搜索的过程中,同时记录最长链与次长链,回溯的时候更新。

解题思路1:两次 d f s dfs dfs 求直径

  • 如果 s [ x ] < x s[x]<x s[x]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值