AcWing 1015. 摘花生(寒假每日一题)入门组

目录


AcWing 1015. 摘花生(寒假每日一题)题目链接

思路

在这里插入图片描述
分为两种状态,计算最优解

AC代码

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N = 110;

//思路:最终的f[n,m]分为两种状态
//分别是从左边趋近时:f[n,m-1]+w[n,m];
//上边:f[n-1,m]+w[n,m]
//每一种状态f[n,m]所存的都是当前可以存的最大和

int main()
{
    
    
    int T, n, m;
    int f[N][N], w[N][N];
    cin >> T;
    while(T--){
    
    
        cin >> n >> m;

        for(int i=1; i<=n; i++)
            for(int j=1; j<=m; j++)
                cin >> w[i][j];

        for(int i=1; i<=n; i++)
            for(int j=1; j<=m; j++)
                f[i][j] = max(f[i][j-1], f[i-1][j]) + w[i][j];

        cout << f[n][m] << endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43232564/article/details/113407018
今日推荐