一个坑点

Ryan_

2019-09-26 10:15:30

Personal

``` #include <cstdio> #include <algorithm> #include <cstring> #include <string> #include <cmath> #include <iostream> #include <iomanip> using namespace std; int n,m,a[2005][2005],ans=1<<30; int main() { scanf ("%d%d",&m,&n); for (int i=0; i<n; i++) for (int j=0; j<m; j++)scanf ("%d",&a[i][j]); for (int j=m-2; j>=0; j--) for (int i=0; i<n; i++) a[i][j]=min(a[(i+1)%n][j+1],a[i][j+1])+a[i][j]; for (int i=0; i<n; i++)ans=min(ans,a[i][0]); printf("%d",ans); return 0; } ``` 对于一些dp涉及到上下行之间的转化,如果存在n行直接到1行的情况,数组下标最好是从0开始(坑了我好久)