網路流二十四題之二十 深海機械人問題

2021-07-11 22:51:12 字數 2308 閱讀 1810

深海資源考察探險隊的潛艇將到達深海的海底進行科學考察。

潛艇內有多個深海機械人。

潛艇到達深海海底後,深海機械人將離開潛艇向預定目標移動。

深海機械人在移動中還必須沿途採集海底生物標本。

沿途生物標本由最先遇到它的深海機械人完成採集。

每條預定路徑上的生物標本的價值是已知的,而且生物標本只能被採集一次。

本題限定深海機械人只能從其出發位置沿著向北或向東的方向移動,而且多個深海機械人可以在同一時間佔據同一位置。

用乙個 p×

q 網格表示深海機械人的可移動位置。

西南角的座標為(0,

0 ),東北角的座標為 (q,

給定每個深海機械人的出發位置和目標位置,以及每條網格邊上生物標本的價值。

計算深海機械人的最優移動方案,使深海機械人到達目的地後,採集到的生物標本的總價值最高。 第

1 行為深海機械人的出發位置數

a,和目的地數

b ,第

2行為

p 和

q的值。

接下來的 p+

1 行,每行有

q 個正整數,表示向東移動路徑上生物標本的價值,行資料依從南到北方向排列。

再接下來的 q+

1行,每行有

p 個正整數,表示向北移動路徑上生物標本的價值,行資料依從西到東方向排列。

接下來的

a行,每行有

3 個正整數 k,

x,y,表示有

k 個深海機械人從 (x

,y)位置座標出發。

再接下來的

b 行,每行有

3個正整數 r,

x,y ,表示有

r 個深海機械人可選擇 (x

,y)位置座標作為目的地。

程式執行結束時,將採集到的生物標本的最高總價值輸出。

1 1

2 2

1 2

3 4

5 6

7 2

8 10

9 3

2 0 0

2 2 2

看到這題的輸入格式,我簡直就無語了。

這個出題人的語文是**學的,光是輸入部分我就看了老半天……

這個題目就是之前的火星問題的公升級版,只不過權值到了邊上,而起點和終點變成了多個,反而使題目變簡單了(因為不再有沒有權值的邊,而且權值在邊上比權值在點上多了乙個好處——不用拆點)。

乙個簡單的費用流就可以了。

[cpp]

#include 

#include 

#include 

#include 

#define ss 99999

#define tt 100000

#define inf 0x3f3f3f3f

#define min(x,y) ((x)

#define pla(x,y) ((x)*(qs+1)+(y))

using

namespace std;  

int a,b,cnt,ans,ps,qs;  

int nxt[100010],head[100010],data[100010];  

int flow[100010],wei[100010];  

int dis[100010];  

int pre[100010];  

queueq;  

bool in_stack[100010];  

void add(int x,int y,int a,int b)    

bool bfs()    

}    

}    

}    

return pre[tt]!=-1;    

}    

void dfs()  

int main()  

for(int i=1;i<=qs+1;i++)  

for(int j=1;j<=ps;j++)  

for(int i=1;i<=a;i++)  

for(int i=1;i<=b;i++)  

while(bfs())  

dfs();  

printf(」%d\n」,-ans);  

return 0;  

}  

網路流二十四題 深海機械人問題 Solution

給一張網格圖,圖上有一些機械人,它們要到指定的地方,它們都只能往東和北移動,每條邊都有價值,但是只能計算一次,問可以達到的最大價值。因為只能計算一次,所以可以這樣建邊 之後 因為要最大費用,所以可以把邊權取反。c od e code code include int a,b int p,q int ...

網路流二十四題

開始了我的網路流 24 題之旅,寫在一起到時候方便一起複習哦。其實這並不是真的二十四題,有一些過於水的我就不寫上來了。然後有的 太水了就不寫了。感覺這些題目還是比較基礎的,方法卻值得借鑑!剩餘題目 航空路線問題 火星探險問題以下 題目描述 點此看題 解法 你發現時間是最大的障礙,因為對於不同的時間飛...

深海機械人 網路流

深海資源考察探險隊的潛艇將到達深海的海底進行科學考察。潛艇內有多個深海機械人。潛艇到達深海海底後,深海機械人將離開潛艇向預定目標移動。深海機械人在移動中還必須沿途採集海底生物標本。沿途生物標本由最先遇到它的深海機械人完成採集。每條預定路徑上的生物標本的價值是已知的,而且生物標本只能被採集一次。本題限...