有没有巨佬帮忙看看?输出样例72,感觉和题解一样的...

回复帖子

@地铁dixiatielu 2019-08-14 09:27 回复
#include <iostream>
#include <cstdio>
using namespace std;
int n,ma[10][10],x,y,num,dp[10][10][10][10];

int main()
{
    //freopwn(".in","r",stdin);
    //freopen(".out","w",stdout);
    scanf("%d",&n);
    while(1)
    {
        scanf("%d%d%d",&x,&y,&num);
        if(x == 0 && y == 0 && num == 0)
            break;
        else
        {
            ma[x][y] = num;
        }
    }
    for(int v = 1;v <= n;v++)
    {
        for(int b = 1;b <= n;b++)
        {
            for(int j = 1;j <= n;j++)
            {
                for(int k = 1;k <= n;k++)
                {
                    dp[v][b][j][k] = max(max(dp[v - 1][b][j][k - 1],dp[v - 1][b][j - 1][k]),max(dp[v][b - 1][j][k - 1],dp[b][b - 1][j - 1][k])) + ma[v][b] + ma[j][k];
                    if(v == j && b == k)
                        dp[v][b][j][k] -= ma[v][b];
                }
            }
        }
    }
    printf("%d",dp[n][n][n][n]);
    return 0;
}
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。