HDU 4859 海岸線(最大流最小割)

2022-06-01 11:21:10 字數 1784 閱讀 3396

難得的中文題,就不翻譯了。

輸入第一行為t,表示有t組測試資料。

每組資料以兩個整數n和m開始,表示地圖的規模。接下來的n行,每一行包含乙個長度為m的字串,表示地圖,『.』表示陸地,』e』表示淺海域,』d』表示深海域。

[technical specification]

1. 1 <= t <= 100

2. 1 <= n, m <= 47

題意:假設地圖為乙個n*m的格仔,其中一些是陸地,一些是可以填充的淺海域,一些是不可填充的深海域。這裡定義海岸線的長度為乙個聯通塊陸地(可能包含淺海域填充變為的陸地)的邊緣長度,兩個格仔至少有乙個公共邊,則視為聯通。

值得注意的是,這裡z市的陸地區域可以是不聯通的,並且整個地圖都處在海洋之中,也就是說,z市是由一些孤島組成的,比如像,夏威夷?

你的任務是,填充某些淺海域,使得所有島嶼的海岸線之和最長。

輸出最長海岸線和。

solution:

一開始以為是貪心,後來發現這個規劃問題好像不可以。演算法是最小割,然後最小割==最大流,演算法是最大流。

由於海岸線一定是海與岸的邊界(廢話哈哈哈~~~),不妨在給出的網格圖外層加多層深海(的孤獨~~~)

顯然(i+j)%2==0的格仔只可能和(i+j)%2==1的格仔有海岸線。不妨二部圖。

我們需要求的是最可能多的相鄰不同對(),也就是求盡可能少的相鄰相同對(或)。

建模如圖,感覺這樣畫圖比較直觀。只畫出部分,還有ee相連之類的。

左右流量均為inf,中間流量為1。

顯然最大流跑出來的是最少的相同對數。

答案就是 sum - mf

HDU 4859 海岸線 最小割

強烈建議閱讀一下最小割模型在資訊學競賽中的應用 其中2.2.2的optimal marks一題和此題建模非常相像。在原圖外圍虛擬一圈 d 我們要最大化的周長,就可以等價為最大化相鄰的 d 和 的總對數,也就是最大化相鄰格仔不同型別的總對數。按照 中的建圖方式,我們可以最小化相鄰格仔不同型別,反過來想...

hdu 4859 海岸線(最小割)

題目 建模 一種新的建圖思路 周圍加了一圈d,令d為奇,為偶,若d確實為奇,與ss連inf,若為偶,與tt 連 inf。同理。然後與周圍的點連 1 盡量保持不變的 習慣,最小割就從 1,1 開始建。include include include include include include def...

hdu 4859 海岸線 最小割

歡迎來到珠海!由於土地資源越來越緊張,使得許多海濱城市都只能依靠填海來擴充套件市區以求發展。作為z市的決策人,在仔細觀察了z市地圖之後,你準備通過填充某些海域來擴充套件z市的海岸線到最長,來吸引更多的遊客前來旅遊度假。為了簡化問題,假設地圖為乙個n m的格仔,其中一些是陸地,一些是可以填充的淺海域,...