【线性规划与网络流24题】孤岛营救问题 分层图
孤島營救問題
Time Limit:?1 Sec??Memory Limit:?128 MBDescription
1944年,特種兵麥克接到國防部的命令。要求馬上趕赴太平洋上的一個孤島,營救被敵軍俘虜的大兵瑞恩。瑞恩被關押在一個迷宮里,迷宮地形復雜,但幸好麥克得到了迷宮的地形圖。迷宮的外形是一個長方形,其南北方向被劃分為 N行,東西方向被劃分為 M列,于是整個迷宮被劃分為 N×M個單元。每個單元的位置可用一個有序數對 (單元的行號,單元的列號)來表示。南北或東西方向相鄰的 2個單元之間可能互通,也可能有一扇鎖著的門。或者是一堵不可逾越的墻。
迷宮中有一些單元存放著鑰匙,而且全部的門被分成 P類。打開同一類的門的鑰匙同樣,不同類門的鑰匙不同。
大兵瑞恩被關押在迷宮的東南角。即(N,M)單元里,并已經昏迷。
迷宮僅僅有一個入口,在西北角。
也就是說,麥克能夠直接進入(1,1)單元。
另外,麥克從一個單元移動到還有一個相鄰單元的時間為 1。拿取所在單元的鑰匙的時間以及用鑰匙開門的時間可忽略不計。?
試設計一個算法,幫助麥克以最快的方式到達瑞恩所在單元。營救大兵瑞恩。
?
Input
第 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<=Gi<=P)。
第 K+3行是一個整數 S,表示迷宮中存放的鑰匙總數。
第 K+3+J行(1<=J<=S)。有 3個整數,依次為 Xi1,Yi1,Qi:表示第 J把鑰匙存放在(Xi1,Yi1)單元里,而且第 J把鑰匙是用來開啟第 Qi類門的。(當中 1<=Qi<=P)。
輸入數據中同一行各相鄰整數之間用一個空格分隔。?
?
Output
輸出麥克營救到大兵瑞恩的最短時間的值。假設問題無解,則輸出-1。
Sample Input
4 4 991 2 1 3 21 2 2 2 02 1 2 2 02 1 3 1 02 3 3 3 02 4 3 4 13 2 3 3 03 3 4 3 04 3 4 4 022 1 24 2 1Sample Output
14HINT
N,M,P <= 10
K < 150
Source
網絡流24題
? ? 題意不多說了。自己讀題就好了。然后要注意的是每一個點可能有多個鑰匙,兩個房間之間不可能須要連穿兩扇門。還有就是推斷兩個房間能不能通過的時候不必枚舉二進制下每位是0還是1,直接如果門須要的鑰匙為y,而當前代表鑰匙01串的數是x,那么能夠把門的鑰匙設為(1<<y),則if(x%((1<<y)*2)?>=(1<<y))就能夠了。試想,把前面的鑰匙去掉。然后剩下的鑰匙若能開,hash值一定>=門號,否則你懂得。不多說了,不懂?手模擬。。
? ? 建邊時候注意點,轉移時注意點。非常快就能水過。
不會分層圖的同學看這個:http://blog.csdn.net/vmurder/article/details/40075989
}
本文轉自mfrbuaa博客園博客,原文鏈接:http://www.cnblogs.com/mfrbuaa/p/5077989.html,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的【线性规划与网络流24题】孤岛营救问题 分层图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP实习之路—NO.1(看LINUX、
- 下一篇: mysqldump: Couldn't