#include<iostream> using namespace std; const int N = 1010; int n, m; int f[N][N]; int a[N][N]; int main() { cin >> n >> m; for(int i = 1; i <= n; ++i) { for(int j = 1; j <= m; ++j) { scanf("%1d", &a[i][j]); a[i][j]++; } } // f[][]是全局变量,所以f[1][1]默认是0,注意这里没有加上a[1][1]哦!! // 不要把a[][]和f[][]混了 for(int i = 2; i <= n; ++i) f[i][1] = f[i-1][1] + a[i][1]; for(int i = 2; i <= m; ++i) f[1][i] = f[1][i-1] + a[1][i]; for(int i = 2; i <= n; ++i) { for(int j = 2; j <= m; ++j) { f[i][j] = min(f[i-1][j], f[i][j-1]) + a[i][j]; } } cout << f[n][m]; }
全部评论
(0) 回帖