狀態壓縮題目

D - 方格取數(1)
Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Description

給你一個n*n的格子的棋盤,每個格子裏面有一個非負數。 
從中取出若干個數,使得任意的兩個數所在的格子沒有公共邊,就是說所取的數所在的2個格子不能相鄰,並且取出的數的和最大。

Input

包括多個測試實例,每個測試實例包括一個整數n 和n*n個非負數(n<=20)

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
代碼:

發佈了47 篇原創文章 · 獲贊 43 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章