闫氏dp分析法(线性dp)AcWing 1015. 摘花生

简介: 闫氏dp分析法(线性dp)AcWing 1015. 摘花生

题目链接

1015. 摘花生 - AcWing题库

一些话

我也不懂什么叫线性dp,和其他dp不知道有什么区别,做的题太少了。

写博客主要是记录下闫氏dp分析法

切入点

地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。


Hello Kitty只能向东或向南走,不能向西或向北走。


问Hello Kitty最多能够摘到多少颗花生。


hk的走法有很多,属于最优解问题,符合dp特征


1≤T≤100

1≤R,C≤100


最多1e2*3,完全够时间,可以dp


流程


// f[i][j],走法的集合,走到i,j的走法

           // 属性是maxn

         

           // 集合划分,最后一个不同的点,f[i][j]可以由上得也可由左得,

           // 上:f[i-1][j] + w[i][j],左:f[i][j-1] + w[i][j];

           // 取二者最大


套路

闫氏dp

ac代码

// f[i][j],走法的集合,走到i,j的走法
            // 属性是所有走法的最大花生
            // 集合划分,最后一个不同的点,f[i][j]可以由上得也可由左得,取二者最大
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
const int N = 110;
int f[N][N],w[N][N];
int  main(){
    int t;
    cin >> t;
    while(t--){
        int n,m;
        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;
    }
}
目录
相关文章
|
5天前
|
存储
【题型总结】数位dp(一)
【题型总结】数位dp(一)
49 0
|
5天前
|
消息中间件 Kubernetes NoSQL
动态规划-线性DP问题总结(二)
动态规划-线性DP问题总结(二)
|
5天前
代码随想录Day36 动态规划05 LeetCode T1049最后一块石头的重量II T494 目标和 T474 一和零
代码随想录Day36 动态规划05 LeetCode T1049最后一块石头的重量II T494 目标和 T474 一和零
35 0
|
9月前
|
算法 Android开发
LeetCode 周赛上分之旅 #38 结合排序不等式的动态规划
学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度也更复杂。在这个专栏里,小彭与你分享每场 LeetCode 周赛的解题报告,一起体会上分之旅。
61 0
|
5天前
|
存储 网络架构
【题型总结】数位dp(二)
【题型总结】数位dp(二)
42 0
|
5天前
【每日一题Day126】LC1140石子游戏Ⅱ | 博弈dp 记忆化搜索
【每日一题Day126】LC1140石子游戏Ⅱ | 博弈dp 记忆化搜索
31 0
(闫氏dp分析法)AcWing 2. 01背包问题
(闫氏dp分析法)AcWing 2. 01背包问题
42 0
|
人工智能 算法 测试技术
LeetCode 双周赛 101,DP / 中位数贪心 / 裴蜀定理 / Dijkstra / 最小环
这周比较忙,上周末的双周赛题解现在才更新,虽迟但到哈。上周末这场是 LeetCode 第 101 场双周赛,整体有点难度,第 3 题似乎比第 4 题还难一些。
68 0
|
C++
【c++图论】洛谷p1991 无线通讯网-思路详解
无线通讯网-思路详解详细题解
140 0