題目描述
給你乙個 \(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行數...