DP入門 迷宮行走方案1

2022-05-19 21:17:17 字數 980 閱讀 3210

題目描述

給你乙個 \(n\) 行 \(m\) 列的二維迷宮,一開始你在迷宮的左上角的格仔 \((1,1)\) 處(我們用位置 \((x,y)\) 來表示第 \(x\) 行第 \(y\) 列),你要走到右下角的格仔 \((n,m)\) 處 ,但是你是不能隨便走的,每一步你只能往右移動一格,或者往下移動乙個,並且你不能移動出迷宮的邊界,請問你有多少種不同的移動方案。

說明:只要從起點到終點的移動路線不同,那麼我們就說它們是不同的移動方案。比如:假設 \(n = m = 2\),那麼從左上角 \((1,1)\) 移動到右下角 \((2,2)\) 共有\(2\) 種移動方案:

輸入格式

輸入一行包含兩個整數 \(n,m(1 \le n,m \le 10)\) ,以空格分隔。

輸出格式

輸出包含乙個整數,表示從 \((1,1)\) 走到 \((n,m)\) 的方案數。

樣例輸入

2 2
樣例輸出
2
本題涉及演算法:動態規劃。

我們設狀態 \(f[i][j]\) 表示從 \((1,1)\) 走到 \((i,j)\) 的方案總數;

那麼:我們可以按照這個思路遞推得到 \(f[n][m]\) 就是我們的答案。

實現**如下:

#include using namespace std;

const int maxn = 11;

int n, m, f[11][11];

int main()

}cout << f[n][m] << endl;

return 0;

}

**說明:因為所有的 \(f[0][j]\) 和 \(f[i][0]\) 都為 \(0\) , 所以對所有除了 \((1,1)\) 以外的第一行或者第一列的元素 \((i,j)\) ,我們同樣可以使用推導方程:\(f[i][j] = f[i-1][j] + f[i][j-1]\) ,而不需要特殊判斷。

DP入門 迷宮行走方案3

題目描述 給你乙個 n 行 m 列 1 le n,m le 100 的二維迷宮,一開始你在迷宮的左上角的格仔 1,1 處 我們用位置 x,y 來表示第 x 行第 y 列 你要走到右下角的格仔 n,m 處 但是你是不能隨便走的,每一步你只能往右移動一格,或者往下移動乙個,並且你不能移動出迷宮的邊界。迷...

dp迷宮方案數

帕秋莉掌握了一種木屬性魔法 這種魔法可以生成一片森林 類似於迷陣 但一次實驗時,帕秋莉不小心將自己困入了森林 帕秋莉處於地圖的左下角,出口在地圖右上角,她只能夠向上或者向右行走 現在給你森林的地圖,保證可以到達出口,請問有多少種不同的方案 答案對2333取模 第一行兩個整數m n表示森林是m行n列 ...

dp入門 1 HD2084 數塔

記錄acm入門 dp入門第一天,hd2084解題報告思路 hd2084 有如下所示的數塔,要求從頂層走到底層,若每一步只能走到相鄰的結點,則經過的結點的數字之和最大是多少?輸入資料首先包括乙個整數c,表示測試例項的個數,每個測試例項的第一行是乙個整數n 1 n 100 表示數塔的高度,接下來用n行數...