“真”AC

许诺  •  2个月前


#include<bits/stdc++.h>
using namespace std;
int a[51][51];
int sum[51][51][51][51];
int n,i,j,h,k,x,y,z;
int main()
{
	cin>>n>>x>>y>>z;
	while(x && y && z)
	{
    	a[x][y]=z;
    	cin>>x>>y>>z;
	}
	for(i=1;i<=n;i++)
    	for(j=1;j<=n;j++)
        	for(h=1;h<=n;h++)
            	for(k=1;k<=n;k++)
            	{
                	int tmp1=max(sum[i-1][j][h-1][k],sum[i][j-1][h][k-1]);
                	int tmp2=max(sum[i-1][j][h][k-1],sum[i][j-1][h-1][k]);
                	sum[i][j][h][k]=max(tmp1,tmp2)+a[i][j];
                	if(i!=h && j!=k) sum[i][j][h][k]+=a[h][k];
            	}
	cout<<sum[n][n][n][n];
	return 0;
}

评论:

请先登录,才能进行评论