思路:假设我们先只考虑一行,规则就是取了i处的土豆,每一个土豆有两种选择,拿与不拿,那么i-1和i+1处的土豆都不能再取,那么要求某一行的最大取值就用一次动态规划即可,dp(i)表示前i个土豆能取得的最大值,转移方程dp(i) = max{dp(i-1), dp(i-2) + w[i]},此时我们已经得到了每一行的最优解,然后可以把n行看做是n个土豆,即每一行看做最优值土豆,同样的状态方程。此题很妙。

AC代码

#include <cstdio>
#include <cmath>
#include <cctype>
#include <algorithm>
#include <cstring>
#include <utility>
#include <string>
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <queue>
#include <stack>
using namespace std;
#pragma comment(linker, "/STACK:1024000000,1024000000")
#define eps 1e-10
#define inf 0x3f3f3f3f
#define PI pair<int, int>
typedef long long LL;
const int maxn = 500 + 5;
int w[maxn][maxn], sum[maxn][maxn], dp[maxn];
int main() {int n, m;while(scanf("%d%d", &n, &m) == 2) {for(int i = 0; i < n; ++i) {for(int j = 0; j < m; ++j) {scanf("%d", &w[i][j]);sum[i][j] = j==0?0:sum[i][j-1];int pre;if(j-2 < 0) pre = 0;else pre = sum[i][j-2];sum[i][j] = max(sum[i][j], pre + w[i][j]);}}for(int i = 0; i < n; ++i) {dp[i] = i == 0 ? 0 : dp[i-1];int pre;if(i-2 < 0) pre = 0;else pre = dp[i-2]; dp[i] = max(dp[i], pre + sum[i][m-1]);}printf("%d\n", dp[n-1]);}return 0;
} 

如有不当之处欢迎指出!

nyoj234 吃土豆 01背包相关推荐

  1. 牛客 TaoTao要吃鸡(01背包)

    牛客 TaoTao要吃鸡(01背包): 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 问题描述: Ta ...

  2. hiho一下 第六周 Hihocoder #1038 : 01背包

    题目1 : 01背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的时 ...

  3. 2017百度之星程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】...

    度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...

  4. HDU 5234 Happy birthday 01背包

    题目链接: hdu:http://acm.hdu.edu.cn/showproblem.php?pid=5234 bc:http://bestcoder.hdu.edu.cn/contests/con ...

  5. 我该如何向我的朋友解释“01背包”问题?

    最近有位朋友有向我问道关于"01背包"算法问题的理解.由于她本人在基础年纪没有学过<计算机算法设计与分析>这门课程,正如每一位初始的人学习一种新的知识一样,学习过程中总 ...

  6. 完全背包与01背包的区别

    写在前面的话: 人被打击得多了,好像对什么都开始麻木了 本文主要是关于完全背包和01背包的对比 完全背包练习题:这里 01背包练习题:这里 我们来考虑一个问题背景,现在你在荒野求生,帐篷已经搭好了,在 ...

  7. 动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包,混合背包

    动态规划dp(带模板题の超易懂版):01背包,完全背包,分组背包,多重背包 01背包 && 完全背包 && 分组背包 の 视频教程:https://www.bilibi ...

  8. 习题整理(简单01背包 可用查并集2022/4/24)

    习题整理 提示:之前的习题在习题集合 文章目录 习题整理 一.诱人的宝藏 1.思路 2.代码 二.晚宴 1.思路 2.代码 三.医师之路 1.思路 2.扩展知识 3.代码 总结 提示:以下是本篇文章正 ...

  9. #1353 : 满减优惠(01背包变形)

    描述 最近天气炎热,小Ho天天宅在家里叫外卖.他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元.并且如果消费总计满X元,还能享受优惠.小Ho是一个不薅羊毛不舒服斯基的人,他希望 ...

  10. 算法模板:动态规划之01背包【沈七】

    算法模板:动态规划之01背包 前言 动态规划 01背包 二维背包 一维优化 经典习题 小A点菜 5 倍经验日 买干草 完结散花 参考文献 前言 唤我沈七就好啦. 动态规划 核心作用:优化 当数据范围& ...

最新文章

  1. 从面试角度一文学完 Kafka
  2. 关于智能车竞赛程序公正问题的讨论
  3. 扎克伯格All in元宇宙,公司更名Meta,「脸」不要了
  4. oracle 唯一约束作用,想问下在表上建唯一索引和使用索引+唯一约束,从功能和性能来说有什么差别?...
  5. C语言中实际参数太多,c – 宏的实际参数太多了?
  6. linux 查看 CPU 使用率
  7. leetcode 92 python
  8. FPGA异步时钟域处理之格雷码转换
  9. 《统计学习方法》—— 感知机原理、推导以及python3代码实现(一)
  10. Effective C# 原则8:确保0对于值类型数据是有效的(翻译)
  11. HTML知识积累及实践(三) - 列表标签
  12. object、param标签及页面显示PDF文件的方法
  13. matlab数据导入 spss,【excel数据导入系统】excel数据导入_excel数据导入spss-系统城...
  14. 记录一下我的游戏私服搭建(台服dnf)
  15. printf输出全格式(C语言)
  16. linux中sendto函数路径,Linux下send、sendto、sendmsg函数分析
  17. python的setting怎么找_python基础之setting设置,变量和关键字
  18. 上海驾照科目三练习笔记
  19. java广告投放系统_1.互联网广告投放管理系统 V1.0 源代码.doc
  20. python狗狗年龄换算程序_1分钟检测狗狗是否老了,还有狗年龄换算表,快看你家狗的情况...

热门文章

  1. ip扫描命令 linux,如何使用Linux扫描网络上的IP地址
  2. DevTools 无法加载源映射
  3. swf文件转mp4视频格式的失败与成功
  4. iperf 服务端发送数据_iperf使用指南
  5. java读取文件 classpath_Java读取Classpath文件
  6. DllRegisterServer引出函数实现
  7. bat批处理之for循环
  8. 令牌桶 java_服务限流(自定义注解令牌桶算法)
  9. echarts地图迁徙图
  10. Egret + P2物理引擎入门教程