AT3611 Tree MST 點分治+最小生成樹

正解:點分治+最小生成樹

解題報告:

傳送門!spa

而後這題麻油翻譯,,,因此這邊的建議是先說下題意呢親翻譯

因此題意大概就是說,給一棵n個節點的樹,樹上每一個點都有個權值,而後構造一個徹底圖,(u,v)之間連邊的權值爲dis(u,v)+w[u]+w[v],求最小生成樹權值和get

而後這題就考慮點分治昂,基本套路不說,說說具體實現io

就對當前中心x,求出它的子樹中全部點到它的距離dis,而後找到全部距離中的min,把全部連邊和它相加放入候選名單中margin

最後跑個kruscal就好di

具體正確性我等下證實趴QAQ?co

而後點分治內部的實現還有一種,也挺妙的,就是直接在當前這個重心的子樹中跑個最小生成樹,只有最小生成樹上的點要加入候選名單中生成

等下放代碼QAQnew

相關文章
相關標籤/搜索