无向图Tarjan&&求树直径

Tarjan可以用来求无向图的割点和割边

割边:\(dfn[u]<low[v]\)
割点:\(low[v]>=dfn[u]\)

求树的直径

做法1:BFS

从任意一个点开始BFS,然后找到最长链,然后从最长链的另一个节点开始BFS,求另外一条最长链
加起来就是答案

做法2:树上DP

维护一个点以其子树构成的最长链
然后答案就是用一个点以其两个子节点形成的最长链来更新

posted @ 2017-11-07 18:07  Grary  阅读(415)  评论(0编辑  收藏  举报
博客园 首页 私信博主 编辑 关注 管理 新世界