線性規劃與網路流24題 8 14 孤島營救問題

2022-04-29 09:09:07 字數 2014 閱讀 8568

1944 年,特種兵麥克接到國防部的命令,要求立即趕赴太平洋上的乙個孤島,營救被敵軍俘虜的大兵瑞恩。瑞恩被關押在乙個迷宮裡,迷宮地形複雜,但幸好麥克得到了 迷宮的地形圖。迷宮的外形是乙個長方形,其南北方向被劃分為n 行,東西方向被劃分為m列,於是整個迷宮被劃分為n×m 個單元。每乙個單元的位置可用乙個有序數對(單元的行號,單元的列號)來表示。南北或東西方向相鄰的2 個單元之間可能互通,也可能有一扇鎖著的門,或者是一堵不可逾越的牆。迷宮中有一些單元存放著鑰匙,並且所有的門被分成p類,開啟同一類的門的鑰匙相同, 不同類門的鑰匙不同。

大兵瑞恩被關押在迷宮的東南角,即(n,m)單元裡,並已經昏迷。迷宮只有乙個入口,在西北角。也就是說,麥克可以直接進入(1,1)單元。另外,麥克從乙個單元移動到另乙個相鄰單元的時間為1,拿取所在單元的鑰匙的時間以及用鑰匙開門的時間可忽略不計。

試設計乙個演算法,幫助麥克以最快的方式到達瑞恩所在單元,營救大兵瑞恩。

第1行有3個整數,分別表示n,m,p的值。

第2 行是1個整數k,表示迷宮中門和牆的總數。第i+2 行(1<=i<=k),有5 個整數,依次為xi1,yi1,xi2,yi2,gi:

當gi>=1時,表示(xi1,yi1)單元與(xi2,yi2)單元之間有一扇第gi類的門,當gi=0 時,表示(xi1,yi1)單元與(xi2,yi2)單元之間有一堵不可逾越的牆(其中,|xi1-xi2|+|yi1-yi2|=1,0& lt;=gi<=p)。

第k+3行是乙個整數s,表示迷宮中存放的鑰匙總數。

第k+3+j 行(1<=j<=s),有3個整數,依次為xi1,yi1,qi:表示第j 把鑰匙存放在(xi1,yi1)單元裡,並且第j 把鑰匙是用來開啟第qi類門的。(其中1<=qi<=p)。

輸入資料中同一行各相鄰整數之間用乙個空格分隔。

將麥克營救到大兵瑞恩的最短時間的值輸出。如果問題無解,則輸出-1。

4 4 9

91 2 1 3 2

1 2 2 2 0

2 1 2 2 0

2 1 3 1 0

2 3 3 3 0

2 4 3 4 1

3 2 3 3 0

3 3 4 3 0

4 3 4 4 0

22 1 2

4 2 1

14
n,m,p<=10

k<=150

s<=15

分析:雖然它被歸類在網路流24題中,但實際上只是一道最短路問題,因為p很小,所以可以將擁有的鑰匙進行狀態壓縮,然後做最短路就好了。

**:

1 #include 2 #include 3

4#define cmp(x,y) ((x) > 0 && (x) <= n && (y) > 0 && (y) <= m)56

intn, m, p, k, s, x1, y1, x2, y2, g;

7int wall[15][15][15][15], map[15][15];8

int and[12] =;

11int x[4] = ;

12int y[4] = ;

13int dis[15][15][2048

];14

int quex[10000000], quey[10000000], key[10000000

], head, tail, nowx, nowy, nowk, tox, toy, tok;

1516

void

init()

1724 scanf("

%d", &s);

25for (int i = 0;i < s;i++)

2630}31

32void

bfs()

3361}62

}63}64 head++;65}

66}6768

void

print()

6976 printf("

%d", ans == dis[0][0][0] ? -1

: ans);77}

7879

intmain()

80

線性規劃與網路流24題 17 運輸問題

description w公司有m個倉庫和n 個零售商店。第i 個倉庫有ai個單位的貨物 第j個零售商店需要bj個單位的貨物。貨物供需平衡,即sigma ai sigma bj 從第i個倉庫運送每單位貨物到第j個零售商店的費用為cij。試設計乙個將倉庫中所有貨物運送到零售商店的運輸方案,使總運輸費用...

線性規劃與網路流24題 4 魔術球

線性規劃與網路流24題 4 魔術球 description 假設有n根柱子,現要按下述規則在這n根柱子中依次放入編號為 1,2,3,的球。1 每次只能在某根柱子的最上面放球。2 在同一根柱子中,任何2個相鄰球的編號之和為完全平方數。試設計乙個演算法,計算出在n根柱子上最多能放多少個球。例如,在4 根...

線性規劃與網路流24題 11航空路線問題

這個題輸出部分還有很多不解。感覺這題的給出的題解中沒考慮細節問題。比如第二組資料,按題解來說的話就不行了。就不貼那個題解了。詳細見程式。include include include includeusing namespace std define inf 1000000000 define m ...