基礎演算法題 迷宮(遞推)

2021-10-09 22:47:03 字數 1110 閱讀 1533

題目鏈結

解題思路

①、暴力法

利用 dfs 遍歷每一條可能的路徑,將遍歷的權值和不斷取餘。

不足:當 n、m 取較大的情況下,所遍歷的路徑可能會暴增,出現超時的情況。

②、遞推法

從題目上我們可以發現,最終的權值和是要對 mod 取餘的,利用這個特點,我們可以實現遞推。

狀態轉移方程:

dp[i][j][k] | = dp[i-1][j][(k-mg[i][j]+mod)%mod];

dp[i][j][k] | = dp[i][j-1][(k-mg[i][j]+mod)%mod];

原理:在迷宮上,假設已知點(i-1, j)與(i, j-1)所能得到的權值和,那麼我們就能求出點(i, j)所能得到的權力和。

ac**

#include

const

int mod =

1e4+7;

bool dp[

110]

[110][

10010];

int mg[

110]

[110

], ans=0;

intmain()

dp[1]

[1][mg[1]

[1]]

=true

;for

(int i=

1; i<=n; i++

)for

(int j=

1; j<=m; j++

)for

(int k=

0; k

)for

(int i=

0; i

(dp[n]

[m][i]

) ans++

;printf

("%d"

, ans)

;return0;

}

遞推訓練(基礎演算法)

題目 於杭電oj problem description 人稱 ac女之殺手 的超級偶像lele最近忽然玩起了深沉,這可急壞了眾多 cole lele的粉絲,即 可樂 經過多方打探,某資深cole終於知道了原因,原來,lele最近研究起了著名的rpg難題 有排成一行的 個方格,用紅 red 粉 pi...

程式設計題走迷宮 C 程式演算法題 迷宮(一)

題目 一天蒜頭君掉進了乙個迷宮裡面,蒜頭君想逃出去,可憐的蒜頭君連迷宮是否有能逃出去的路都不知道。看在蒜頭君這麼可憐的份上,就請聰明的你告訴蒜頭君是否有可以逃出去的路。輸入格式 第一行輸入兩個整數 n和 m,表示這是乙個 n m的迷宮。接下來的輸入乙個 n行 m列的迷宮。其中 s 表示蒜頭君的位置,...

基礎演算法之遞推法

一.倒推法 例1 儲油點 每次送油到儲存點,因為每次從n 1處出發至n處時都是攜帶500公升油,往返次數越少說明花掉的油最少。int main int k,d k為儲油點位置序號,d為累計終點至當前儲油點的距離 int oil 10 dis 10 儲油點的油量和離終點的距離 int i 輔助變數 k...