已AC代码:
#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int n, m;
scanf("%d%d", &n, &m);
int a[n][m], t[n][m];
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
scanf("%d", &a[i][j]);
}
}
t[0][0] = a[0][0];
for(int i=1; i<n; i++)
{
t[i][0] = a[i][0] + t[i-1][0];
}
for(int j=1; j<m; j++)
{
t[0][j] = a[0][j] + t[0][j-1];
}
for(int i=1; i<n; i++)
{
for(int j=1; j<m; j++)
{
t[i][j] = max(t[i][j-1], t[i-1][j]) + a[i][j];
}
}
printf("%d\n", t[n-1][m-1]);
return 0;
}
本文介绍了一种使用二维动态规划解决特定类型问题的方法。通过构建矩阵并利用预处理技术,该算法有效地计算了从起点到终点的最大路径和,适用于算法竞赛和实际应用中的路径规划问题。
320

被折叠的 条评论
为什么被折叠?



