問題描述
在平面上有一些二維的點陣。
這些點的編號就像二維陣列的編號一樣。
從上到下依次為第 1 至第 n 行,從左到右依次為第 1 至第 m 列,每乙個點可以用行號和列號來表示。
現在有個人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下走。
注意,如果行號和列號都是偶數,不能走入這一格中。
問有多少種方案。
輸入格式
輸入一行包含兩個整數 n,m。
輸出格式
輸出乙個整數,表示答案。
樣例輸入1:
3 4樣例輸出1
2樣例輸入2:
6 6樣例輸出2
0資料範圍
1 ≤ n ≤ 30, 1 ≤ m ≤ 30。
題解一
dfs(會超時):
#include
using
namespace std;
int ans;
int n, m;
void
dfs(
int x,
int y)
dfs(x +
1, y)
;dfs
(x, y +1)
;}intmain()
題解二
記憶化搜尋:
#include
using
namespace std;
const
int n =50;
int n, m;
int f[n]
[n];
intdfs
(int x,
int y)
return f[x]
[y];
}int
main()
題解三
動態規劃:
f[i][j]
:所有能從(1, 1)
走到(i, j)
的方案數;
#include
using
namespace std;
const
int n =50;
int f[n]
[n];
intmain()
cout << f[n]
[m]<< endl;
return0;
}
藍橋杯c/c++組省賽歷年題 第十一屆藍橋杯省賽 走方格
時間限制 1.0s 記憶體限制 512.0mb 本題總分 20 分 問題描述 在平面上有一些二維的點陣。這些點的編號就像二維陣列的編號一樣,從上到下依次為第 1 至第 n 行,從左到右依次為第 1 至第 m 列,每乙個點可以用行號和列號來表示。現在有個人站在第 1 行第 1 列,要走到第 n 行第 ...
第十一屆藍橋杯
問題描述 小藍要為一條街的住戶製作門牌號。這條街一共有 2020 位住戶,門牌號從 1 到 2020 編號。小藍製作門牌的方法是先製作 0 到 9 這幾個數字字元,最後根據需要將字 符貼上到門牌上,例如門牌 1017 需要依次貼上字元 1 0 1 7,即需要 1 個 字元 0,2 個字元 1,1 個...
第十一屆藍橋杯 矩陣
問題描述 把 1 2020 放在 2 1010 的矩陣裡。要求同一行中右邊的比左邊大,同一列中下邊的比上邊的大。一共有多少種方案?答案很大,你只需要給出方案數除以 2020 的餘數即可。答案提交 這是一道結果填空題,你只需要算出結果後提交即可。本題的結果為乙個整數,在提交答案時只填寫這個整數,填寫多...