HDU 2845 Beans (动态调节)
Beans
Total Submission(s): 2596 Accepted Submission(s): 1279
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 ?
1000, and 1<=M*N<=200000.
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
242
pid=1159" target="_blank">1159
pid=1176" target="_blank">1176
这道题意思能够转换成:对每一行,不能有间隔的取一个子序列,即取该行的最大不连续子序列和;再从上面全部值中,取其最大不连续子序列和;就相当于隔一行取了
状态:f[i]表示取第i个元素(a[i]必取)的最大值,map[i]表示取到a[i](可不取)时的最大值状态转移:f[i]=map[i-2]+a[i];map[i]=max{map[i-1],f[i]};
#include <stdio.h>
#include <iostream>
using namespace std;
#define M 200001
int vis[M],map[M],dp[M],f[M];
int max(int a[],int n) //求在a[]中最大不连续子序列和。
{
int i;
f[0]=map[0]=0;
f[1]=map[1]=a[1];
for(i=2;i<=n;i++) //要保证i-2不会数组越界。
{
f[i]=map[i-2]+a[i]; //由于要隔一个取。所以取了a[i],就不能取a[i-1],所以最大值就是前i-2个数的最大值+a[i].
map[i]=f[i]>map[i-1]?f[i]:map[i-1]; //假设取a[i]要更大,更新map[i]的值。
}
return map[n];
}
int main(int i,int j,int k)
{
int n,m,tot,cur;
while(scanf("%d%d",&n,&m)!=EOF&&n&&m)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
scanf("%d",&vis[j]);
dp[i]=max(vis,m);
}
printf("%d\n",max(dp,n));
}
return 0;
}
版权声明:本文博主原创文章。博客,未经同意不得转载。
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(dp)
Problem Description Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled ...
- Hdu 2845 Beans
Beans Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- 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 2475 BOX 动态树 Link-Cut Tree
Box Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) [Problem De ...
随机推荐
- hdu1495之经典搜索
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 改动file header (測)
--改动file header ------------------------------------------------------------------------- cd $ORACLE ...
- 再读TCP/IP网络7层协议
随着工作的深入,每次读这7层协议,每次都有不同的理解. 分层名 分层号 ...
- 初尝Java序列化/反序列化对象
看个类: package com.wjy.bytes; import java.io.Serializable; public class ObjTest implements Serializabl ...
- 在C#或者SWT上跨进程访问SWT控件的问题
可能为了进程安全,无论是C#的Form还是Eclipse的SWT,都不允许跨进程访问控件. 通俗一点说就是: A进程创建了控件Widget,若想在B进程中访问控件Widget就会报错,必须在创建Wid ...
- SWT中的多线程(Invalid thread access)
最近在学习swt的东西,遇到一个问题,特转录如下. SWT异常: org.eclipse.swt.SWTException: Invalid thread access 在创建SWT界面的线程之外的线 ...
- hdu 4740【模拟+深搜】.cpp
题意: 给出老虎的起始点.方向和驴的起始点.方向.. 规定老虎和驴都不会走自己走过的方格,并且当没路走的时候,驴会右转,老虎会左转.. 当转了一次还没路走就会停下来.. 问他们有没有可能在某一格相遇. ...
- SharePoint 2013的HTML5特性之响应式布局
今天偶然看到一本书<Pro SharePoint 2013 Branding and Responsive Web Development>,看到SharePoint 2013基于HTML ...
- HttpAsyncClient 做并发长连接的一个实例
HttpAsyncClient 做并发长连接的一个实例 import java.util.concurrent.CountDownLatch; import org.apache.http.HttpR ...
- c++自带倒置数组函数
#include<stdio.h> #include <vector> #include <queue> #include<algorithm> usi ...