UVA10285 記憶化搜尋 dfs

2021-09-02 17:43:17 字數 1254 閱讀 2649

在乙個r*c(r,c<=100)的整形矩陣上找一條高度嚴格遞減的最長路。起點任意,但是每次只能沿著上下左右四個方向之一走一格,並且不能走出矩陣外。如圖所示,最長高度按照25,24,23,…,1走,長度為25

01 02 03 04 05

16 17 18 19 06

15 24 25 20 07

14 23 22 21 08

13 12 11 10 09

第一行輸入多少組資料t

乙個字串代表name,接著輸入r,c

接下來輸入矩陣

共t組資料

每行輸出name+":"+" "+最大長度

2

feldberg 10 5

56 14 51 58 88

26 94 24 39 41

24 16 8 51 51

76 72 77 43 10

38 50 59 84 81

5 23 37 71 77

96 10 93 53 82

94 15 96 69 9

74 0 62 38 96

37 54 55 82 38

spiral 5 5

1 2 3 4 5

16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

feldberg: 7

spiral: 25

#include

#include

#include

#include

#include

using

namespace std;

int map[

105]

[105];

int d[

105]

[105];

int movey[4]

=;int movex[4]

=;int r,c;

intdfs

(int i,

int j)}}

return d[i]

[j];

}int

main()

cout<": "

<}return0;

}

uva 116 (記憶化搜尋)

題意 如圖,從左到右走,每次可以往左上 up 左 fo 左下 dn 走,當走到第一行或最後一行時可以如圖穿越。求一條權值最小的路徑,並列印字典序最小的路徑。解析 狀態轉移方程 dp i j min dp i 1 m m j 1 up dp i j 1 fo dp i 1 m j 1 dn 字典序最小...

uva10626(記憶化搜尋)

題目大意 一瓶可樂需要花8元,自動販售機只收1元,5元,10元。每次插入的錢只能買一瓶。給出n瓶可樂,請問最少插入幾次錢可以買到所需要數量的可樂。思路 一共有以下幾種情況 8個1元 插入8次 3個1元 乙個5元 插入4次 3個1元 乙個10元 插入4次 找5元 1個10元 插入1次 找2 1元 2個...

UVA 1629 記憶化搜尋

有乙個n行m列的蛋糕,切蛋糕,要求最後每一塊蛋糕上恰好有乙個櫻桃。問切割線總長度最小是多少?記憶化搜尋。設dp l r u d 為切割從橫向從l到r,縱向從u到d的一塊蛋糕,切割線總長度的最小值。然後不斷dfs搜尋並記錄dp值,最後dp 0 m n 0 即為所求。include include in...