摘花生 刷题笔记
摘花生 刷题笔记
最新推荐文章于 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... | 下一篇: 养宠物猴:我们真的准备好了吗? |





