割边:(dfn[u]<low[v]) 割点:(low[v]>=dfn[u])
从任意一个点开始BFS,然后找到最长链,然后从最长链的另一个节点开始BFS,求另外一条最长链 加起来就是答案
维护一个点以其子树构成的最长链 然后答案就是用一个点以其两个子节点形成的最长链来更新