#include using namespace std; const int INF = 0x3f3f3f3f; const int N = 110; int n, m; int a[N][N]; int res = INF; int f[N][N]; /* 动态规划 2 3 1 3 5 2 4 6 答案: 13 */ int main() { memset(f, 0x3f, sizeof f); cin >> n >> m; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) cin >> a[i][j]; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) { if (i == 1 && j == 1) f[i][j] = a[i][j]; else f[i][j] = min(f[i - 1][j], f[i][j - 1]) + a[i][j]; } printf("%d\n", f[n][m]); return 0; }