CEOI 2014 wall (最短路)

來源:互聯網
上載者:User

標籤:

描述:給定一個網格圖,每個區間可能會有城市,求在邊上建牆使無法從外邊到達所有城市切所有城市必須聯通 n,m<=400

首先對於30%的資料,n,m<=10我們可以考慮用數位dp來解決這個問題

考慮用射線法,如果一個點被包括的話,那麼向上做一條射線,我們可以發現如果被包含的話該射線得與奇數條邊相交,就可以愉快的用數位dp搞了

正解的話,我們可以先做出從1,1到其他城市的左上方的最短路,可以證明這些最短路必須被包含在這個區間上的

然後我們考慮如何讓答案不越過這些最短路(也就是包含這些最短路)

有兩種做法(本質上好像一樣的應該是的):

1(題解做法):把每個點拆成4個小點,將於把最短路以及所有包含村莊的邊經過的點封掉後跑一次最短路即可()

別吐槽我的圖,畢竟是這個部落格的第一張圖= =

2(lyy的神做法):把每個點拆成9點,然後把最短路以及所有包含村莊的邊的兩個端點的中心連線經過的點去掉後跑一次最短路即可()

可以跟道路一樣理解,如果你不想讓人通過橫過馬路,就得建起一條隔離欄,人們就無法過去但還是能沿著隔離欄行走

還有上面那個結論的證明:

首先是若存在某種選擇不包含最短路徑,那麼我們一定可以把某條邊換成最短路徑試答案更小(從題解扒了張圖)

,灰色區間是某種選擇,綠色邊是最短路,那麼我們可以考慮多包括那個黃色區間,答案不會更差

第一次寫的這麼詳細= =

考試的時候是想到這方面了,不過想到的是最小產生樹,今後還是要多加證明以及多打程式驗證(很多東西都是自己想到了但就是沒有用實際的去證明結果沒打出來= =)還是得認真一點啊

CEOI 2014 wall (最短路)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.