首页 分享 摘花生 刷题笔记

摘花生 刷题笔记

来源:萌宠菠菠乐园 时间:2026-01-21 04:10

摘花生 刷题笔记

最新推荐文章于 2026-01-19 21:13:59 发布

原创 于 2024-03-08 10:34:00 发布 · 501 阅读

· 5

· 7 ·

CC 4.0 BY-SA版权

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

思路 dp
开一个 f[N][N]数组
f[i][j]表示 当走到位置i,j时 所摘到的花生的最大值 
对于任意一个位置i,j
因为只能向东或者向南走
所以 当前花生最大值只能来自左边或者上面
第i,j号位置的花生数 已经确定
所以只需取左边和上面的花生数的最大值即可
即f[i][j]=max(f[i-1][j],f[i][j-1])+w[i][j];
f[i-1][j]就是当前位置的左边花生数
f[i][j-1]则是上面的花生数 
因为每一次的选择都是基于左边和上边取得最大值
所以总体最大

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
const int N=110;
int w[N][N],f[N][N];
int main(){
    int n;
    cin>>n;
    while(n--){
        int r,c;
        cin>>r>>c;
        for(int i=1;i<=r;i++){
            for(int j=1;j<=c;j++){
                cin>>w[i][j];
                f[i][j]=max(f[i-1][j],f[i][j-1])+w[i][j];
            }
        }

                 cout<<f[r][c]<<endl;
    } 

              return 0;
}

相关知识

【NOI OJ】2728 摘花生
百练2950:摘花生
花生问题——百练OJ:2950:摘花生与1928:The Peanuts
SWUST oj 348: 花生采摘
算法题练习系列之(三十四): 采花生
院校专业课[鱼类学]考研,初试复试历年真题答案解析笔记资料
【SWUST OJ 题解】348: 花生采摘 (Python)(C++)
noip2004普及组第2题 花生采摘
洛谷 P1086 花生采摘 题解
[NOIP2004 普及组] 花生采摘(含代码)

网址: 摘花生 刷题笔记 https://www.mcbbbk.com/newsview1340674.html

所属分类:萌宠日常
上一篇: example/bin/wb.t
下一篇: 养宠物猴:我们真的准备好了吗?

推荐分享