一.矩阵的最小路径和
题目链接:https://www.nowcoder.com/practice/38ae72379d42471db1c537914b06d48e?tpId=230&tqId=39755&ru=/exam/oj


1.题目解析



2.代码实现
cpp
#include <iostream>
#include <cstring>
using namespace std;
const int N = 510;
int n,m;
int f[N][N];
int main()
{
cin >> n >> m;
memset(f,0x3f,sizeof(f));
f[0][1] = 0;
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= m;j++)
{
int t;
cin >> t;
f[i][j] = min(f[i - 1][j],f[i][j - 1]) + t;
}
}
cout << f[n][m] << endl;
return 0;
}
二.迷雾森林
题目链接:https://ac.nowcoder.com/acm/problem/53675
1.题目解析
2.代码实现
cpp
#include <iostream>
using namespace std;
const int N = 3010, MOD = 2333;
int n,m;
int a[N][N];
int f[N][N];
int main()
{
scanf("%d%d",&n,&m);
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= m;j++)
{
scanf("%d",&a[i][j]);
}
}
f[n][0] = 1;
for(int i = n;i >= 1;i--)
{
for(int j = 1;j <= m;j++)
{
if(a[i][j] == 0) f[i][j] = (f[i + 1][j] + f[i][j - 1]) % MOD;
}
}
cout << f[1][m] << endl;
return 0;
}
三.过河卒
题目链接:https://www.luogu.com.cn/problem/P1002
1.题目解析
2.代码实现
四.方格取数
题目链接:https://www.luogu.com.cn/problem/P1004


1.题目解析


2.代码实现
cpp
#include <iostream>
using namespace std;
typedef long long LL;
const int N = 25;
int n,m,a,b;
LL f[N][N];
bool check(int x,int y)
{
return (x == a && y == b) || (x != a && y != b && abs(x - a) + abs(y - b) == 3);
}
int main()
{
cin >> n >> m >> a >> b;
n++;m++;a++;b++;
f[0][1] = 1;
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= m;j++)
{
if(check(i,j)) continue;
f[i][j] = f[i - 1][j] + f[i][j - 1];
}
}
cout << f[n][m] << endl;
return 0;
}
