ctsc2009 移民站选址
?
分析:非常非常好的一道題!
首先需要對(duì)問(wèn)題進(jìn)行轉(zhuǎn)化:
轉(zhuǎn)化1很顯然,對(duì)于轉(zhuǎn)化2,是一類(lèi)非常經(jīng)典的“中位數(shù)問(wèn)題”,即在一條線段上,有若干個(gè)特殊點(diǎn),要選擇一個(gè)點(diǎn)的位置,使得它到這些點(diǎn)距離*對(duì)應(yīng)權(quán)值的和最小. 結(jié)論就是這個(gè)點(diǎn)一定在給定的這些點(diǎn)的位置上.
那么問(wèn)題可以變成,m個(gè)位置,每個(gè)有n種選擇,代價(jià)即為其與舊站的傳輸代價(jià)和。不同位置間的選擇也會(huì)帶來(lái)代價(jià).
首先假設(shè)我們不知道這道題要用網(wǎng)絡(luò)流來(lái)做. dp? Emm,這怎么設(shè)計(jì)狀態(tài)啊,要狀壓?jiǎn)?#xff1f; 明顯壓不下. 貪心,肯定不行. 這道題涉及到“匹配”,自然就是網(wǎng)絡(luò)流咯.
費(fèi)用流可以嗎?顯然是不行的,舊站與新站之間的費(fèi)用很好處理,但是新站與新站之間的費(fèi)用不好處理.
那就只有是最大流咯. 用流量表示費(fèi)用?這怎么表示啊......
那么鎖定方法--最小割!
每個(gè)位置有多種選擇,注意到這句話,可以往兩個(gè)方面去想:
本題如果要用最小割顯然不能用第一種方法.因?yàn)檫x擇與選擇之間不好處理,那么就用第二種方法.
上面所畫(huà)的就是建圖方式.具體說(shuō)來(lái),就是S連向每個(gè)點(diǎn)拆出來(lái)的第一個(gè)點(diǎn),容量為inf,每個(gè)點(diǎn)拆出來(lái)的最后一個(gè)點(diǎn)連向T,容量為inf.
對(duì)于第i個(gè)點(diǎn)拆出的第k個(gè)點(diǎn)連向第i個(gè)點(diǎn)拆出的第k+1個(gè)點(diǎn),容量為第i個(gè)新站建在第k個(gè)舊站的代價(jià).
對(duì)于第i個(gè)點(diǎn)拆出的第k個(gè)點(diǎn)連向第j個(gè)點(diǎn)拆出的第k個(gè)點(diǎn),容量為b_ij.
下面來(lái)分析一下建圖:
割掉第i個(gè)點(diǎn)拆出來(lái)的點(diǎn)實(shí)際上就是確定了第i個(gè)新站的位置. 如上圖所示,如果同時(shí)割掉兩條紅色的邊,為了使得S,T不連通,必然會(huì)割掉兩條綠色的邊. 如果i的選擇是pi,j的選擇是pj,一共會(huì)割掉 |pi - pj|條綠邊,正好就是新站i,j之間的代價(jià).
至此這道題就做完了.
一點(diǎn)感想:最小割為了使得ST不連通,一次能夠割掉很多條邊.如果網(wǎng)絡(luò)流的題要求很多的貢獻(xiàn)(兩兩之間的).嘗試用最小割?
轉(zhuǎn)載于:https://www.cnblogs.com/zbtrs/p/8612945.html
總結(jié)
以上是生活随笔為你收集整理的ctsc2009 移民站选址的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 广发DIY卡手续费多少?费用信息介绍
- 下一篇: Hadoop学习之路(九)HDFS深入理