移动路线
描述×桌子上有一個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<m+n<=20),代表方格矩陣的行數和列數,m、n之間用空格隔開 輸出輸出只有一行,為不同的移動路線的數目。 樣例輸入 2 3 樣例輸出 3
小明是個調皮的孩子,一天他捉來一只螞蟻,不小心把螞蟻的右腳弄傷了,于是螞蟻只能向上或向右移動。小明把這只螞蟻放在左下角的方格中,螞蟻從
左下角的方格中移動到右上角的方格中,每步移動一個方格。螞蟻始終在方格矩陣內移動,請計算出不同的移動路線的數目。
對于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)
查看
思路很容易想
#include<cstdio> #include<cmath> #include<iostream> #include<algorithm> #include<vector> #include<string> #include<map> #include<cstring> #define DEBUG(x) cout << #x << " = " << x << endl using namespace std; const int MAXN=25; int M,N; ///從i,j到m,n的路線數 int Ways[MAXN][MAXN]; int main() { // freopen("in.txt","r",stdin);scanf("%d %d",&M,&N);Ways[M][N]=1;for(int i=M-1;i>=1;i--)Ways[i][N]=1;for(int i=N-1;i>=1;i--)Ways[M][i]=1;for(int i=M-1;i>=1;i--){for(int j=N-1;j>=1;j--){Ways[i][j]=Ways[i+1][j]+Ways[i][j+1];}}printf("%d\n",Ways[1][1]);return 0; }?
轉載于:https://www.cnblogs.com/MalcolmMeng/p/9177377.html
總結
- 上一篇: 天津北辰区彭众4S店是国企吗?
- 下一篇: CodeForces - 760E Ni