[BZOJ3669]-[Noi2014]魔法森林-LCT+並查集__LCT

來源:互聯網
上載者:User
說在前面

剛剛去寫了一道SPFA+網路流的糅合題,1A了
閑著沒事幹開始翻起了status,發現有人在做水管局長,哇這不是LCT嘛!
然後回頭看了一下自己寫過的寥寥無幾的LCT的題,發現都快要忘了
於是決定來補一篇部落格,嗯就是這樣 題目

BZOJ3669傳送門
順便,BZOJ3668是一道很好玩的題,傳送門:BZOJ3668傳送門 題目大意

給一個含有N個節點和M條邊的無向圖,每條邊有兩個權值 ai,bi a_i,b_i
現在定義一條從A到B的路徑的代價為A到B的路徑上的 max(ai)+max(bi) max(a_i)+max(b_i)
詢問1到N的最小代價。 N≤50000,M≤100000 N\leq 50000,M\leq 100000 輸入輸出格式

輸入格式:
第1行包含兩個整數 N N, M M,表示無向圖共有 N N個節點, M M條邊
接下來 M M行,每行包含4個正整數 u,v,ai,bi u, v , a_i , b_i,描述第 i i條無向邊。其中 u u與 v v為該邊兩個端點的標號, ai a_i與 bi b_i的含義如題所述。 注意資料中可能包含重邊與自環

輸出格式:
輸出一行一個整數,表示答案 解法

這道題很難,me是看了題解的(逃)
正解是LCT,把邊權化為點權進行維護

這道題一條邊有兩個權值,很難用最小產生樹或者最短路之類的來跑。那麼想到先讓一維有序,在另一維上搞事。
最開始所有的點都是不聯通的。
先把所有邊按照 ai a_i從小到大排序,然後依次把邊加進圖裡。如果加邊之後,圖裡形成了環,並且環上最大的 bi b_i比當前邊大,就把那條最大的邊割掉,否則不加邊。
加完邊之後,如果 1 1號點和 N N號點聯通,那麼就用當前 ai a_i和路徑上最大的 bi b_i更新答案

關於正確性。
假設原來1和N不聯通,加了一條邊變得聯通了,那麼更新答案,正確性顯然。
如果原來1和N就聯通,並且新邊的 bi b_i比原來某一條邊小。由於 ai a_i肯定比原來所有邊都大,所以只要走這條邊,代價就一定會有

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.