输入和转移方程都有问题,改成这样就过了
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m,ans=INT_MAX,a[2001][2001],dp[2001][2001];
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
cin>>a[j][i];
for(int j=1;j<=m;j++)
dp[1][j]=a[1][j];
for(int i=2;i<=n;i++)
for(int j=1;j<=m;j++){
if(j==1)
dp[i][j]=min(dp[i-1][j]+a[i][j],dp[i-1][m]+a[i][j]);
else
dp[i][j]=min(dp[i-1][j]+a[i][j],dp[i-1][j-1]+a[i][j]);
}
for(int i=1;i<=m;i++)
ans=min(ans,dp[n][i]);
cout<<ans<<endl;
return 0;
}
```
by diqiuyi @ 2022-09-27 13:24:45