動態規劃3 移動路線

2021-08-18 19:06:31 字數 1051 閱讀 1260

描述×桌子上有乙個m行n列的方格矩陣,將每個方格用座標表示,行座標從下到上依次遞增,列座標從左至右依次遞增,左下角方格的座標為(1,1),則右上角方格的座標為(m,n)。

小明是個調皮的孩子,一天他捉來乙隻螞蟻,不小心把螞蟻的右腳弄傷了,於是螞蟻只能向上或向右移動。小明把這只螞蟻放在左下角的方格中,螞蟻從

左下角的方格中移動到右上角的方格中,每步移動乙個方格。螞蟻始終在方格矩陣內移動,請計算出不同的移動路線的數目。

對於1行1列的方格矩陣,螞蟻原地移動,移動路線數為1;對於1行2列(或2行1列)的方格矩陣,螞蟻只需一次向右(或向上)移動,移動路線數也為1……對於乙個2行3列的方格矩陣,如下圖所示:

-------------------

|(2,1)|(2,2)|(2,3)|

-------------------

|(1,1)|(1,2)|(1,3)|

-------------------

螞蟻共有3種移動路線:

路線1:(1,1) → (1,2) → (1,3) → (2,3)

路線2:(1,1) → (1,2) → (2,2) → (2,3)

路線3:(1,1) → (2,1) → (2,2) → (2,3)

輸入輸入只有一行,包括兩個整數m和n(0樣例輸出

3第一次寫對此類題 ,寫個部落格慶祝一下(*~~*)

這道題類似斐波那契額數列

因為只能往上和往右走,而往右走一下列就減一,每往上走一下,行就減一

所以可以推出狀態轉移公式

dp[i][j]=dp[i-1][j]+dp[i][j-1];

#include#include#include#define msm(a,b) memset(a,b,sizeof(a))

using namespace std;

int dp[510][510];

int main()

for(int i=0;i<=a;i++)

for(int i=2;i<=a;i++)

} cout

}

ok!

動態規劃練習 移動路線

題目要求 桌子上有乙個m行n列的方格矩陣,將每個方格用座標表示,行座標從下到上依次遞增,列座標從左至右依次遞增,左下角方格的座標為 1,1 則右上角方格的座標為 m,n 小明是個調皮的孩子,一天他捉來乙隻螞蟻,不小心把螞蟻的右腳弄傷了,於是螞蟻只能向上或向右移動。小明把這只螞蟻放在左下角的方格中,螞...

動態規劃練習09 移動路線

題目簡要 描述 桌子上有乙個m行n列的方格矩陣,將每個方格用座標表示,行座標從下到上依次遞增,列座標從左至右依次遞增,左下角方格的座標為 1,1 則右上角方格的座標為 m,n 小明是個調皮的孩子,一天他捉來乙隻螞蟻,不小心把螞蟻的右腳弄傷了,於是螞蟻只能向上或向右移動。小明把這只螞蟻放在左下角的方格...

動態規劃練習一 09 移動路線

描述 桌子上有乙個m行n列的方格矩陣,將每個方格用座標表示,行座標從下到上依次遞增,列座標從左至右依次遞增,左下角方格的座標為 1,1 則右上角方格的座標為 m,n 小明是個調皮的孩子,一天他捉來乙隻螞蟻,不小心把螞蟻的右腳弄傷了,於是螞蟻只能向上或向右移動。小明把這只螞蟻放在左下角的方格中,螞蟻從...