关于数据范围
查看原帖
关于数据范围
286580
rhyyy1楼主2020/9/1 21:06

题目中说

n,m<=50

但是

#include<bits/stdc++.h>
using namespace std;
const int N=60;//这里
int f[2*N][N][N];
int c[N][N];
int main(){
	//freopen("P1006_4.in","r",stdin);
	int n,m; scanf("%d%d",&m,&n);
	for(int i=1;i<=m;i++)
	   for(int j=1;j<=n;j++) scanf("%d",&c[i][j]);
	for(int k=3;k<=n+m-1;k++)
	   for(int i=1;i<=n&&i<=k-1;i++)
	      for(int j=1;j<=n&&j<=k-1&&j<i;j++){
	      	 int sum=0;
	      	 for(int a=0;a<=1;a++)
	      	    for(int b=0;b<=1;b++) sum=max(sum,f[k-1][i-a][j-b]);
	      	 f[k][i][j]=sum+c[k-i][i]+c[k-j][j];
		  }
	printf("%d\n",f[n+m-1][n][n-1]);
}

此代码RE

#include<bits/stdc++.h>
using namespace std;
const int N=100;//这里
int f[2*N][N][N];
int c[N][N];
int main(){
	//freopen("P1006_4.in","r",stdin);
	int n,m; scanf("%d%d",&m,&n);
	for(int i=1;i<=m;i++)
	   for(int j=1;j<=n;j++) scanf("%d",&c[i][j]);
	for(int k=3;k<=n+m-1;k++)
	   for(int i=1;i<=n&&i<=k-1;i++)
	      for(int j=1;j<=n&&j<=k-1&&j<i;j++){
	      	 int sum=0;
	      	 for(int a=0;a<=1;a++)
	      	    for(int b=0;b<=1;b++) sum=max(sum,f[k-1][i-a][j-b]);
	      	 f[k][i][j]=sum+c[k-i][i]+c[k-j][j];
		  }
	printf("%d\n",f[n+m-1][n][n-1]);
}

此代码AC

数据范围怎么了?请哪位大佬指点一下

2020/9/1 21:06
加载中...