最小路径和
2025-07-28 08:54:38
发布于:上海
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e3+10;
int a[N][N], dp[N][N];
int main() {
int n,m;
cin >> n>>m;
for (int i = 1; i <= n; i++){
for (int j = 1; j <= m; j++){
cin>>a[i][j];
}
}
for (int i = 0; i <= n; i++){
for (int j = 0; j <= m; j++){
dp[i][j]=2e9;
}
}
// 初始化 dp
dp[1][1] = a[1][1];
// 初始化第一行
for(int i=1;i<=n;i++){
for (int j = 1; j <= m; j++){
if(i==1&&j==1){
continue;
}
dp[i][j] = min(dp[i][j-1], dp[i-1][j]) + a[i][j];
}
}
cout<<dp[n][m];
return 0;
}
这里空空如也
有帮助,赞一个