Hdu 2845 Beans
Beans
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2518 Accepted Submission(s): 1250
Problem Description
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 1*1 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-1), (x, y+1), and the both rows whose abscissas are x-1 and x+1.
Now, how much qualities can you eat and then get ?
Input
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<=200000.
Output
For each case, you just output the MAX qualities you can eat and then get.
Sample Input
4 6
11 0 7 5 13 9
78 4 81 6 22 4
1 40 9 34 16 10
11 22 0 33 39 6
Sample Output
242
题目的意思是给一个矩阵,没一点放置一定数量的豆,求出最多能吃多少个豆。但是吃豆有一定的规则,如果吃点(x,y)的豆,那么点(x,y-1)、点(x,y+1)和点(x,y)所在行的上一行和下一行的豆都不能吃。所以我们要做的事首先将每一行所能吃到的最大豆的数量求出来,即求出每一行非连续的最大子序列和,然后将每一行所求的最大豆数量保存到数组序列中,同样的方法求出数组序列的非连续的最大子序列和即为所能吃到的最大豆的数量。
状态转移方程:sum[i] = dp[i-2]+a[i],dp[i] = max(sum[i],dp[i-1]),2<=i<=n,初始化sum[0]=dp[0]=0,sum[1]=dp[1]=a[1]。
我的代码:
#include <iostream>
#include <cstdio>
using namespace std;
#define N 200003
int sum[N],dp[N],map[N],row[N]; int solve(int a[],int n)
{
int i;
sum[] = ;
dp[] = ;
sum[] = a[];
dp[] = a[];//数组dp代表最大豆的数量
for(i=; i<=n; i++)
{
sum[i] = dp[i-]+a[i];
dp[i] = max(sum[i],dp[i-]);
}
return dp[n];
} int main()
{
int i,j,n,m,sum;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=; i<=n; i++)
{
for(j=; j<=m; j++)
scanf("%d",&map[j]);
row[i] = solve(map,m);
}
sum = solve(row,n);
printf("%d\n",sum);
}
return ;
}
Hdu 2845 Beans的更多相关文章
- HDU 2845 Beans (DP)
Beans Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
- HDU 2845 Beans (两次线性dp)
Beans Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU 2845 Beans (动态调节)
Beans Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- HDU 2845 Beans(dp)
Problem Description Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled ...
- HDU 2845 Beans (DP)
Problem Description Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled ...
- hdu 2845 Beans(最大不连续子序列和)
Problem Description Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled ...
- hdu 2845 Beans 2016-09-12 17:17 23人阅读 评论(0) 收藏
Beans Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- hdu 2845——Beans——————【dp】
Beans Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- hdu 3037Saving Beans(卢卡斯定理)
Saving Beans Saving Beans Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
随机推荐
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需 要获取认证信息(如Cookie),所以返回的是HttpWeb ...
- HTML 5 画布(canvas)
canvas 元素使用 JavaScript 在网页上绘制图像,本身是没有绘图能力. canvas 是一个矩形区域,可以控制其每一像素. canvas 拥有多种绘制路径.矩形.圆形.字符以及添加图像的 ...
- 使用ZIM桌面维基做笔记
最近尝试了使用ZIM做笔记,感觉还不错 ubuntu下直接到软件中心即可安装,或者 sudo apt-get install zim windows下的到此下载http://www.glump.net ...
- 重学ps_1
1,选取 打开图片->点击选取工具->ctrl+c->ctrl+n->ctrl+v 2,去除图片背景 打开你要去除背景的图片->在图层面板中->双击图层把图层改为0 ...
- centos关闭防火墙
Centos7 关闭防火墙 CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下 1.直接关闭防火墙 systemctl stop firewalld.se ...
- centos建立回收站
linux下的回收站在每一个当前用户目录./local/share/Trash中. 也可以给linux添加一个回收站. mkdir /tmp/trash_tmp 建立一个回收站目录 vi /bin/t ...
- 计算LDA模型困惑度
http://www.52nlp.cn/lda-math-lda-%E6%96%87%E6%9C%AC%E5%BB%BA%E6%A8%A1 LDA主题模型评估方法--Perplexity http:/ ...
- Struts2_ValueStack,OGNL详解(转)
原文地址:http://blog.csdn.net/wyply115/article/details/8257140 一.OGNL表达式 1.ognl是struts2中使用的一种表达式语言,可用于js ...
- AOP学习心得&jdk动态代理与cglib比较
什么是AOP AOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入 ...
- 多线程获取不到HttpContext
问题一:多线程下获取文件绝对路径 当我们使用HttpContext.Current.Server.MapPath(strPath)获取绝对路径时HttpContext.Current为null,解决办 ...