Description
從中取出若干個數,使得任意的兩個數所在的格子沒有公共邊,就是說所取的數所在的2個格子不能相鄰,並且取出的數的和最大。
Input
Output
Sample Input
3 75 15 21 75 15 28 34 70 5
Sample Output
188
代碼:
H:約會
- 總時間限制:
- 2000ms
- 內存限制:
- 65535kB
- 描述
-
一個acmer想要去和妹子約會,他們處於一個N行M列的方格地圖中,acmer在地圖左上角座標爲(1,1)的位置,而妹子在地圖右下角座標爲(n,m)的位置,acmer一個單位時間只可以移動到上下左右相鄰的一個格子上。然而在這個地圖中有許多牆和不同顏色的門,牆是不可以穿越的,只有拿到和門顏色一樣的鑰匙,才能打開對應顏色的門,只有兩個格子之間的門都被打開了acmer纔可以從當前格子走到門另一邊的格子。acmer當然想要最快時間內到達妹子的位置,你能幫助acmer計算出最短到達的時間麼?
- 輸入
- 多組測試數據。
第一行輸入三個整數,N、M、P,分別表示地圖有N行M列,P種顏色的門(1 <= N,M <= 50 , 0 <= P <= 10)
第二行輸入一個整數K,表示有牆和門的數量總共有K個(0 <= K <= 500)
接下來K行,每行輸入5個整數,xi1,yi1,xi2,yi2,gi。如果gi值爲0,表示格子(xi1,yi1)和格子(xi2,yi2)之間有牆,如果gi>=1,表示格子(xi1,yi1)和格子(xi2,yi2)之間有一個gi顏色的門。
接下來輸入一個整數S,表示有數量爲S的鑰匙在迷宮中(0 <= S <= 50)
接下來S行,每行輸入3個整數,xi1,yi1,qi,表示格子(xi1,yi1)含有顏色爲qi的鑰匙。
1 <= xi1,xi2 <= N 1 <= yi1,yi2 <= M | xi1 - xi2 | + | yi1 - yi2 |=1 0 <= gi <= P 1 <= qi <= P - 輸出
- 輸出一個整數表示acmer最短到達妹子位置的時間,如果acmer不能到達妹子的位置,則輸出"zhuding gudu yisheng"(引號不用輸出)
- 樣例輸入
-
4 4 9
-
9
-
1 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
-
2
-
2 1 2
-
4 2 1
- 樣例輸出
-
14