2#4#10#错了3个点,求助
  • 板块P1130 红牌
  • 楼主mooktian
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/3/16 10:36
  • 上次更新2023/10/23 21:26:23
查看原帖
2#4#10#错了3个点,求助
890321
mooktian楼主2023/3/16 10:36

感觉推导的也没啥问题啊,不知道为什么错了。

#include <bits/stdc++.h>
using namespace std;
#define f(i,a,b) for(int i=a;i<=b;i++)
#define g(i,a,b) for(int i=a;i>=b;i--)
int m,n,minn=1e6;
int a[2001][2001];
int dp[2001][2001];
int main(){
	cin>>n>>m;
	f(i,0,m-1) {
		f(j,0,n-1) {
			cin>>a[i][j];
		}
	}
	f(i,0,m-1) dp[i][0]=a[i][0];
	f(j,1,n-1) {
		f(i,0,m-1) {
			int pre;//上一个步数所在的小组数
			pre=i-1;
			if(pre<0) pre+=m;
			dp[i][j]=min(dp[i][j-1],dp[pre][j-1])+a[i][j];
		}
	}
	/*f(i,0,m-1) {
		f(j,0,n-1) {
			printf("%d ",dp[i][j]);
		}
		printf("\n");
	}*/
	f(i,0,m-1) {
		minn=min(minn,dp[i][n-1]);
	}
	cout<<minn;
   return 0;
}

求大神帮忙看看,调了半天,头都晕了, 这题我是从第2列往第n-1列推,还是一定是按行来推的啊。

2023/3/16 10:36
加载中...