POJ 2385 Apple Catching【DP】
题意:2棵苹果树在T分钟内每分钟随机由某一棵苹果树掉下一个苹果,奶牛站在树#1下等着吃苹果,它最多愿意移动W次,问它最多能吃到几个苹果。
思路:不妨按时间来思考,一给定时刻i,转移次数已知为j, 则它只能由两个状态转移而来。
即上一时刻同一棵树或上一时刻不同的树
dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]);
则这一时刻在转移次数为j的情况下最多能接到的苹果为那两个状态的最大值再加上当前能接受到的苹果。(注意当前能否拿到苹果只与转移次数有关)
if (j % 2 + 1 == apple[i])dp[i][j]++;
#include <iostream>
#include <cstdio>
#include <queue>
#include <math.h>
#include <string.h>
#include <string>
#include <algorithm>
using namespace std; int dp[1001][31];
int apple[1001];
int main()
{
int t,w;
scanf("%d%d", &t,&w);
memset(dp, 0, sizeof(dp));
for(int i=1;i<=t;i++)
scanf("%d",apple+i);
for(int i=1;i<=t;i++)
for(int j=0;j<=w;j++)
{
if(j == 0)//注意
dp[i][j] = dp[i-1][j];
else
dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]);
if(j%2+1==apple[i])dp[i][j]++;
}
int ans=0;
for(int i=1;i<=t;i++)
for(int j=0;j<=w;j++)
ans=max(ans,dp[i][j]);
printf("%d",ans);
return 0;
}
POJ 2385 Apple Catching【DP】的更多相关文章
- poj 2385 Apple Catching 基础dp
Apple Catching Description It is a little known fact that cows love apples. Farmer John has two ap ...
- POJ 2385 Apple Catching ( 经典DP )
题意 : 有两颗苹果树,在 1~T 的时间内会有两颗中的其中一颗落下一颗苹果,一头奶牛想要获取最多的苹果,但是它能够在树间转移的次数为 W 且奶牛一开始是在第一颗树下,请编程算出最多的奶牛获得的苹果数 ...
- POJ - 2385 Apple Catching (dp)
题意:有两棵树,标号为1和2,在Tmin内,每分钟都会有一个苹果从其中一棵树上落下,问最多移动M次的情况下(该人可瞬间移动),最多能吃到多少苹果.假设该人一开始在标号为1的树下. 分析: 1.dp[x ...
- 【POJ】2385 Apple Catching(dp)
Apple Catching Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13447 Accepted: 6549 D ...
- POJ 3280 Cheapest Palindrome【DP】
题意:对一个字符串进行插入删除等操作使其变成一个回文串,但是对于每个字符的操作消耗是不同的.求最小消耗. 思路: 我们定义dp [ i ] [ j ] 为区间 i 到 j 变成回文的最小代价.那么对于 ...
- poj 2385 Apple Catching(dp)
Description It and ) in his field, each full of apples. Bessie cannot reach the apples when they are ...
- poj 2385 Apple Catching(记录结果再利用的动态规划)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 有两颗苹果树,在每一时刻只有其中一棵苹果树会掉苹果,而Bessie可以在很短的时 ...
- POJ 1661 Help Jimmy【DP】
基础DP,过程想明白了其实也不复杂,从上面的推下面的比倒着推要简单很多.调试了半个多小时..简单dp依然不能快速AC..SAD.. 题目链接: http://poj.org/problem?id=16 ...
- poj2385 - Apple Catching【动态规划】
Description It is a little known fact that cows love apples. Farmer John has two apple trees (which ...
随机推荐
- SQL语句(一)SQL和数据库数据表的创建
SQL的组成 (1) 数据定义语言DDL(Data Definition Language) 用于数据库和数据表的创建.修改和删除等操作 CREATE (create) 创建数据库.数据表 ALTER ...
- JS 互相调用iframe页面中js方法、VUE里 iframe 互调方法
1,父 html 调用子 iframe 内方法: document.getElementById("iframe").contentWindow.func(data1,data2. ...
- CopyFromScreen在屏幕缩放情况下需要做处理
using System; using System.Drawing; using System.Runtime.InteropServices; //这段代码转自网上 namespace Syste ...
- Ubuntu18.04下vim的tab缩进设置为4个空格
在/etc/vim/vimrc最后添加如下内容 set ts = 4 set exbandtab set autoindent
- 基于802.11Fuzz技术的研究
转自安全客 关于无线的Fuzz最开始接触了解时,国内基本毛线都搜不到.经过几个月的资料搜集和学习,将大约全网的fuzz资料整理翻译分析并读懂写下,就为填补国内空白,也希望无线爱好者能多多交流. 在各个 ...
- Java——Struts2 之国际化 struts.custom.i18n.resources=globalMessages
1.在src下 建立 struts.properties 文件,内容为:struts.custom.i18n.resources=globalMessages struts.custom.i18n.r ...
- C# 面向对象的new关键字的使用
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- luogu P3522 [POI2011]TEM-Temperature
这道题暴力做法就是枚举每个起点,然后向后拓展到不能拓展 就像这样(红框是每个位置的取值范围,绿线是你取的值构成的折线) 应该可以发现,左端点往右移的过程中,右端点也只能不动或往右移,所以我们可以每次移 ...
- luogu P4744 [Wind Festival]Iron Man
再次感谢题解区大佬的指点 规定\(pre[i]\)表示前缀\(i\)的前缀和,\(sum[i][j]\)表示区间\([i,j]\)之和 令\(f[i][j]\)表示前i个数选出j段的最大值,\(g[i ...
- Ubuntu16.04搭建QingdaoU(docker一键式部署)
QDUOJ已经开源到2.0版本了,下面的教程不再适用,仅做纪念吧! 这几天装什么Linux.开源OJ上瘾了...竟然没去刷题...嗯,做好记录就写题啦! 先上原始网站的图: 风格不错,很符合我的口味. ...