nyoj 234 吃土豆
描述
Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled with different qualities beans. Meantime, there is only one bean in any * grid. Now you want to eat the beans and collect the qualities, but everyone must obey by the following rules: if you eat the bean at the coordinate(x, y), you can’t eat the beans anyway at the coordinates listed (if exiting): (x, y-), (x, y+), and the both rows whose abscissas are x- and x+.
Now, how much qualities can you eat and then get ?
- 输入
-
There are a few cases. In each case, there are two integer M (row number) and N (column number). The next M lines each contain N integers, representing the qualities of the beans. We can make sure that the quality of bean isn't beyond 1000, and 1<=M,N<=500.
- 输出
-
For each case, you just output the MAX qualities you can eat and then get.
- 样例输入
-
- 样例输出
-
思路:
考虑对于某行某列元素,row[i][j]表示加上位置为i,j的土豆的质量的i行j列最大的和
列的最大值:row[i][j]=max(row[i][j-2]+row[i][j-3])+val
看图说话:

假设红色的格子为i行j列,那么它的前面有两种选择方案:
1、选择蓝色格子
2、选择黄色格子
那么该行最大的和是什么呢?
由于n列、n-1列具有状态无关性(n-1列的状态影响不了n列的状态),很显然等于max(row[i][n],row[i][n-1])
同理对于dp[i] (i行的最大值)
dp[i]=max(dp[i-2],dp[i-3])+max_row[i]
看图说话:

max土豆质量=max(dp[m],dp[m-1])
为了方便计算,我的代码把n,m扩大了2
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define N 506
int n,m;
int col[N][N];
int dp[N];
int main()
{
while(scanf("%d%d",&n,&m)==){
memset(col,,sizeof(col));
memset(dp,,sizeof(dp));
for(int i=;i<n+;i++){
for(int j=;j<m+;j++){
int x;
scanf("%d",&x);
col[i][j] = max(col[i][j-],col[i][j-])+x;
}
}
for(int i=;i<n+;i++){
dp[i]=max(dp[i-],dp[i-])+max(col[i][m+],col[i][m+]);
}
printf("%d\n",max(dp[n+],dp[n+]));
}
return ;
}
nyoj 234 吃土豆的更多相关文章
- nyoj 吃土豆
吃土豆 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Bean-eating is an interesting game, everyone owns an M* ...
- nyoj234 吃土豆 01背包
思路:假设我们先只考虑一行,规则就是取了i处的土豆,每一个土豆有两种选择,拿与不拿,那么i-1和i+1处的土豆都不能再取,那么要求某一行的最大取值就用一次动态规划即可,dp(i)表示前i个土豆能取得的 ...
- nyoj 对决吃桃
时间限制:3000 ms | 内存限制:65535 KB 难度:0 描述 有一堆桃子不知数目,猴子第一天吃掉一半,又多吃了一个,第二天照此方法,吃掉剩下桃子的一半又多一个,天天如此,到第m天早 ...
- 设计模式(二)简单工厂模式(Simple Factory Pattern)
一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式. 二.简单工厂 ...
- head first 设计模式读书笔记 之 策略模式
作为一个php开发者,深知曾经很多程序员都鄙视php,为什么呢?因为他们认为php的语法是dirty的,并且由于开发者水平参差不齐导致php的代码更加乱上加乱,维护起来简直一坨shit一样.随着php ...
- C#设计模式之二简单工厂模式(过渡模式)
一.引言 之所以写这个系列,是了为了自己更好的理解设计模式,也为新手提供一些帮助,我都是用最简单的.最生活化的实例来说明.在上一篇文章中讲解了单例模式,今天就给大家讲一个比较简单的模式--简单工厂模式 ...
- gensim和jieba分词进行主题分析,文本相似度
参考链接:https://blog.csdn.net/whzhcahzxh/article/details/17528261 demo1:结巴分词: # 构造分词库,格式如下: ''' [['楼下', ...
- ThreadPoolExecutor 入参 corePoolSize 和 maximumPoolSize 的联系
前言 我们可以通过 java.util.concurrent.ThreadPoolExecutor 来创建一个线程池: new ThreadPoolExecutor(corePoolSize, max ...
- C#设计模式(2)——简单工厂模式(转)
C#设计模式(2)——简单工厂模式 一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理 ...
随机推荐
- 编程之美2015初赛第一场 hihoCoder #1156 : 彩色的树(染色问题)
#1156 : 彩色的树 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵n个节点的树,节点编号为1, , …, n.树中有n - 1条边,任意两个节点间恰好有一条 ...
- 一个js编写全选、弹出对话框、ajax-json的案例
js功能有:全选.弹出对话框.使用json传输ajax数据:不想在写多余的文字了,直接上代码: <%@ page language="java" contentType=&q ...
- RPG JS跨平台测试
RPG JS虽然说是跨平台的,但是在具体的测试中效果并不理想. 以官方提供的Demo为例 问题一 手机的屏幕太小,导致画面上的人物都很小,连点击都很不准确.在9寸的平板上才可以看得比较清楚. 问题二 ...
- [Javascript] How to use JavaScript's String.replace
In JavaScript, you can change the content of a string using the replace method. This method signatur ...
- 【精品】Android游戏类源码大集合
Android自定义效果——随机抽奖 一个模拟抽奖的效果,用户设定若干个选项,添加之后,就可以通过程序,来帮助随机选择其中一项出来.这个类似超市里面那种指针转盘抽奖,run之后是一个动态效果图,初始快 ...
- jquery之null的数组
去掉null的数组 function ClearNullArr(arr) { for (var i = 0; i < arr.length; i++) { if(arr[ ...
- js判断浏览器类型以及版本
你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器. 几天前,浏览器家族有刚诞生了一位小王子,就是Google推出的 ...
- linux oracle 设置随系统自动启动数据库实例和监听
在root账户下修改/etc/oratab 文件: # vi /etc/oratab 找到orcl=/db/app/oracle/product/11.1.0/db_1 :N这一行 改为: orcl= ...
- .net 开发定时执行的windows服务
环境:win7+vs2010+Oracle11g+office2010(64位操作系统) 需求:开发定时执行的windows服务从数据库中查询数据下载到指定地址Excel中 一.添加新建项目——win ...
- CAS单点登录原理以及debug跟踪登录流程
CAS 原理和协议 基础模式 基础模式 SSO 访问流程主要有以下步骤: 1. 访问服务: SSO 客户端发送请求访问应用系统提供的服务资源. 2. 定向认证: SSO 客户端会重定向用户请求到 SS ...