50pts 求调
查看原帖
50pts 求调
1288371
abc123_cn楼主2025/6/22 17:15

WA #2 #4 #6 #8 #9

#include <iostream>
using namespace std;

int m, n, map[55][55], dp[110][55][55];

int main()
{
    cin >> m >> n;
    for (int i = 1; i <= m; i ++)
        for (int j = 1; j <= n; j ++)
            cin >> map[i][j];
    dp[0][1][1] = map[1][1];
    for (int k = 1; k <= m + n - 2; k ++)
        for (int i = 1; i <= m; i ++)
            for (int j = 1; j <= n; j ++)
            {
                dp[k][i][j] = max(max(dp[k - 1][i][j], dp[k - 1][i - 1][j - 1]), max(dp[k - 1][i - 1][j], dp[k - 1][i][j - 1])) + map[i][k - i + 2];
                if (i != j) dp[k][i][j] += map[j][k - j + 2];
            }
    cout << dp[m + n - 2][m][n] << endl;
    return 0;
}
2025/6/22 17:15
加载中...