AcWing 1015. 摘花生
原题链接
简单
作者:
北辰.
,
2024-11-07 20:53:56
,
所有人可见
,
阅读 2
Hello Kitty想摘点花生送给她喜欢的米老鼠。
她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。
地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,
经过一株花生苗就能摘走该它上面所有的花生。
Hello Kitty只能向东或向南走,不能向西或向北走。
问Hello Kitty最多能够摘到多少颗花生。
#include<bits/stdc++.h>
using namespace std;
/*
动态规划 1、状态标识f[i][j]:所有从(1,1)走到(i,j)的所有可能路线的最大值
集合 属性(最大值/最小值/数量)
2、状态的计算:集合的划分 :
划分的依据:不重(求min,max可以不满足) 、不漏
(1)最后一步从上边下来
(2)最后一步从左边过来的
*/
const int N= 110;
int n,m;
int w[N][N];
int f[N][N];
int main()
{
int T;
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-1][j],f[i][j-1])+w[i][j];
}
}
cout<<f[n][m]<<endl;
}
return 0;
}