POJ 2385 Apple Catching [DP]

原创 2012年03月22日 12:57:33

题意:

很久很久以前,山上有两棵苹果树,每一分钟,其中一棵就会掉下一颗苹果。

树下有一只牛,好吃懒做。

每一分钟只可以出现在某一棵苹果树下面,因为他没有买分身斧,dotaer都懂的。

问给定一个奔跑次数,怎样奔跑才能吃到的苹果数量最多。


思路:

dp。

申请一个二维数组dp [ j ] [ w ] 。j 代表此状态下 剩余奔跑速度 j 的条件下 ,站在w树下的最大吃到苹果树 ( w=0或者1)。

其实本来是三维dp [ i ][ j ][ w ],i代表在第 i 分钟,但是因为 i 状态下只跟 i -1 状态有关,可以进行空间优化。


w是读取的此分钟时,哪棵树掉苹果。

状态转移方程如下:

			dp[j][w]=Max(dp[j+1][1-w],dp[j][w])+1;
			dp[j][1-w]=dp[j][1-w];

最后要注意的是看一下discuss,牛刚开始其实是站在哪棵树下都可以。


#include<iostream>
#include<vector>
#include<string>
#include<queue>
#include<cmath>
#include<algorithm>
#define llong long long
#define Min(a,b) (a<b?a:b)
#define Max(a,b) (a>b?a:b)
#define Abs(a) ((a)>0?(a):-(a))
#define Mod(a,b) (((a)-1+(b))%(b)+1)
using namespace std;
int n,m;
const int N=1005;
const int M=35;
const int inf=99999999;
int dp[M][2];
int main()
{
	int w;
	scanf("%d%d",&n,&m);
	for(int j=0;j<=m;j++)
	{
		dp[j][1]=-inf;
		dp[j][0]=-inf;
	}
	dp[m][0]=dp[m][1]=0;
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&w);
		w--;
		for(int j=0;j<=m;j++)
		{
			dp[j][w]=Max(dp[j+1][1-w],dp[j][w])+1;
			dp[j][1-w]=dp[j][1-w];
		}
	}
	int ans=0;
	for(int i=0;i<=m;i++)
	{
		ans=Max(ans,dp[i][0]);
		ans=Max(ans,dp[i][1]);
	}
	printf("%d\n",ans);
	return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POJ2385--Apple Catching

题目大意:Farmer John一开始是站在树1下面,他可以在树1和树2之间来回移动W次,每分钟只能移动一次,也可以不移动每分钟有且只有一棵树会掉苹果,问在时间为T分钟内,他可以得到多少个苹果   ...

POJ 2385 Apple Catching DP

有两棵树,一开始站在第一棵树,每秒有苹果从树上掉下(不会同时两棵树都有),你最多移动w次,求t秒后你能得到的最大的苹果数目。

POJ2385 Apple Catching 【DP】

Apple Catching Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8018   Accepted: 3...

poj 2385 Apple Catching 简单DP

Apple Catching Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7108   ...

Apple Catching (poj 2385 简单dp)

题意:有两棵苹果树,每一分钟其中一棵会掉一个苹果,给出T分钟内哪个树会掉苹果,人在两棵苹果树之间来回跑接苹果,问在最多跑W次下最多能接到多少苹果。 思路:转移方程:dp[i][j]=max(dp[i-...

POJ 2385-Apple Catching (基础DP)

摘苹果呀摘苹果~~ dp[i]

POJ 2385 Apple Catching 接苹果 DP

题目链接:POJ 2385 Apple Catching Apple Catching Time Limit: 1000MS   Memory Limi...

POJ2385Apple Catching【dp】

Apple Catching Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9265   ...

POJ 2385 Apple Catching(基础DP)

Apple Catching Description It is a little known fact that cows love apples. Farmer John has two ...

poj 2385 Apple Catching dp

《挑战》练习题,基础dp。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)