为什么转移方程不是这个
dp[i][j]=min(dp[i-1][j],dp[i-1][j%num_group+1])+group[i][j];
我的代码如下
#include<iostream>
#include<algorithm>
using namespace std;
int group[2010][2010],dp[2010][2010]={0};
int main()
{
int num_group,step;
cin>>step>>num_group;
for(int i=1;i<=num_group;i++)
for(int j=1;j<=step;j++)
scanf("%d",&group[j][i]);
for(int i=1;i<=step;i++)
{
for(int j=1;j<=num_group;j++)
{
dp[i][j]=min(dp[i-1][j],dp[i-1][j%num_group+1])+group[i][j];
}
}
cout<<*min_element(dp[step]+1,dp[step]+1+num_group);
return 0;
}