HDU5253 連線的管道

2022-05-18 17:03:54 字數 1227 閱讀 9810

problem description

老 jack 有一片農田,以往幾年都是靠天吃飯的。但是今年老天格外的不開眼,大旱。所以老 jack 決定用管道將他的所有相鄰的農田全部都串聯起來,這樣他就可以從遠處引水過來進行灌溉了。當老 jack 買完所有鋪設在每塊農田內部的管道的時候,老 jack 遇到了新的難題,因為每一塊農田的地勢高度都不同,所以要想將兩塊農田的管道鏈結,老 jack 就需要額外再購進跟這兩塊農田高度差相等長度的管道。

現在給出老 jack農田的資料,你需要告訴老 jack 在保證所有農田全部可連通灌溉的情況下,最少還需要再購進多長的管道。另外,每塊農田都是方形等大的,一塊農田只能跟它上下左右四塊相鄰的農田相連通。

input

第一行輸入乙個數字t(

t≤10)

,代表輸入的樣例組數

輸入包含若干組測試資料,處理到檔案結束。每組測試資料佔若干行,第一行兩個正整數 n,

m(1≤

n,m≤

1000

),代表老

jack 有n行*m列個農田。接下來 n 行,每行 m 個數字,代表每塊農田的高度,農田的高度不會超過100。數字之間用空格分隔。

output

對於每組測試資料輸出兩行:

第一行輸出:"case #i:"。i代表第i組測試資料。

第二行輸出 1 個正整數,代表老 jack 額外最少購進管道的長度。

sample input

2

4 3

9 12 4

7 8 56

32 32 43

21 12 12

2 3

34 56 56

12 23 4

sample output

case #1:

82case #2:

74這道題類似於最短路徑 只不過需要我們自己來建邊 並且給邊賦值

我把每塊地編號1-n 相鄰的兩塊地建立一條邊 邊權為高度之差得絕對值 然後就是從邊權最小的開始連線

#include#include#include#include#includeusing namespace std;

struct node

s[2000001];//存邊

int vis[1001][1001];

int h[1001][1001];

bool cmp(node a,node b)

{ return a.val

HDU 5253 連線的管道

題目連線 老 jack 有一片農田,以往幾年都是靠天吃飯的。但是今年老天格外的不開眼,大旱。所以老 jack 決定用管道將他的所有相鄰的農田全部都串聯起來,這樣他就可以從遠處引水過來進行灌溉了。當老 jack 買完所有鋪設在每塊農田內部的管道的時候,老 jack 遇到了新的難題,因為每一塊農田的地勢...

hdu 5253連線的管道

傳送門 題意 農夫連線農田,每塊農田的相對高度差是建圖的權值。最小生成樹的入門模版題,不錯不錯 include include include using namespace std const int maxn 1010 int fa 5000005 int maze maxn maxn int ...

HDOJ 5253 連線的管道(最小生成樹)

problem description 老 jack 有一片農田,以往幾年都是靠天吃飯的。但是今年老天格外的不開眼,大旱。所以老 jack 決定用管道將他的所有相鄰的農田全部都串聯起來,這樣他就可以從遠處引水過來進行灌溉了。當老 jack 買完所有鋪設在每塊農田內部的管道的時候,老 jack 遇到了...