bzoj1023 仙人掌图【仙人掌&&树形dp】
解题思路:f[i]表示以i为根的子树中i为起点的最长链。若(u,v)是桥,则ans=max(ans,f[u]+f[v]+1)(此时f[u]还未被f[v]更新),接着f[u]=max(f[u],f[v]+1);这也是树的直径的一种解法。若u是环上的一个点,设该环大小为cnt,则ans=max(ans,f[u]+f[v]+dis(u,v))其中v也为该环上一点且dis(u,v)<=cnt/2(不然就走环
原创
2017-11-22 16:52:47 ·
330 阅读 ·
0 评论