動態規劃(2)

2021-07-27 01:51:41 字數 897 閱讀 9535

題目輸入格式:

第1行: 兩個數字r,c(1< =r,c< =100),表示矩陣的行列。 第2..r+1行:每行c個數,表示這個矩陣。

輸出格式:

僅一行: 輸出1個整數,表示可以滑行的最大長度。

樣例輸入

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

樣例輸出

分析題目:

題目是從某個點出發,那麼假設先從h[0][0]開始

它的初始值距離為1,而後向選擇4個方向走

有f[i][j]表示每個起始點的最大滑行距離,然後用dfs記憶搜尋

狀態轉移方程

f[x][y] = max(f[x][y], dfs(x, y - 1) + 1);

f[x][y] = max(f[x][y], dfs(x, y - 1) + 1);

f[x][y] = max(f[x][y], dfs(x + 1, y) + 1);

f[x][y] = max(f[x][y], dfs(x, y + 1) + 1);

#include "bits/stdc++.h"

using

namespace

std ;

const

int maxn = 110 ;

int h[maxn][maxn] , f[maxn][maxn] ;

int n, m, ans = 1;

int dfs(int x, int y)

int main()

動態規劃2

動態規劃是研究一類最優化問題的方法,在經濟 工程技術 企業管理 工農業生產及軍事等領域中都有廣泛的應用。近年來,在acm icpc中,使用動態規劃 或部分應用動態規劃思維 求解的題不僅常見,而且形式也多種多樣。而在與此相近的各類資訊學競賽中,應用動態規劃解題已經成為一種趨勢,這和動態規劃的優勢不無關...

動態規劃2

最長遞增子串行的問題 給定陣列arr,返回arr的最長遞增子串行長度。比如arr 最長遞增子串行為,返回arr的最長遞增子串行長度。比如arr 最長遞增子串行為所以返回這個子串行的長度為5。解決方案 arr 2 1 5 3 6 4 8 9 7 dp 1 1 2 2 3 3 4 5 4 dp i 表示...

動態規劃 2

飛彈攔截 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲。由於該系統還在試用階段,所以只有一套系統,因此有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度...