#include <iostream> #include<algorithm> #include<cstring> using namespace std; const int N=510; int n,m; int f[N][N],g[N][N]; int main() { cin>>n>>m; for(int i=1;i<=n;i++) {for(int j=1;j<=m;j++) cin>>g[i][j]; } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) {if(i==1)f[i][j]=f[i][j-1]+g[i][j];//特判第一行只能从左边过来 if(j==1)f[i][j]=f[i-1][j]+g[i][j];//特判第一列只能从上面过来 if(i!=1&&j!=1)//其他行从右边或上边过来 f[i][j]=min(f[i-1][j]+g[i][j],f[i][j-1]+g[i][j]); //cout<<f[i][j]<<' '; }//cout<<endl; }cout<<f[n][m]; return 0; } // 64 位输出请用 printf("%lld") +-