萌新求助QAQ
查看原帖
萌新求助QAQ
583402
opopiuhvfd楼主2021/12/22 21:46

几乎和题解一模一样了,2,3,5测试点还是WAஇ௰இ,而且如果将n定义在main函数里了为什么不对呀

#include<stdio.h>
using namespace std;
int n;int res;
int f[18][9][9];
int s[9][9];

int max(int a,int b,int c,int d)
{
	return (((((a>b)?a:b)>c)?((a>b)?a:b):c)>d)?((((a>b)?a:b)>c)?((a>b)?a:b):c):d;
}

int main()
{
	scanf("%d",&n);
	
	while(1)
	{
		int x;int y;int num;
		scanf("%d%d%d",&x,&y,&num);
		if(x==0&&y==0&&num==0) break;
		s[x-1][y-1] = num;
	}
	
	f[0][0][0] = s[0][0];
	
	for(int i = 0;i < 2*n; i++){
	
	for(int j = 0;j<=i&&j<n; j++){

	for(int h = 0;h<=i&&h<n; h++){
		
		if(i==0&&j==0&&h==0) continue;

		f[i][j][h] = max(f[i-1][j][h],f[i-1][j-1][h-1],f[i-1][j-1][h],f[i-1][j][h-1])+s[h][i-h]+s[j][i-j];
		
		if(j==h) f[i][j][h]-=s[h][i-h];	
	}}}
	res=f[2*(n-1)][n-1][n-1];
	printf("%d\n",res);
	return 0;
}
2021/12/22 21:46
加载中...