Apple Catching - POJ 2385 - Virtual Judge https://vjudge.net/problem/POJ-2385
题意:有两棵树,每分钟树上会掉下一颗苹果,问在T分钟内,最多移动次数为W,能获得的最多苹果数量是多少,最开始在树1下面

代码中有详细注释

通过题意我们可以得到状态转移方程

  1. dp[i][j]表示在前i秒内,移动j次所获得的最多苹果数量
  2. j=0,dp[i][j]=dp[i-1][j],为什么不直接等于0呢,先思考一下,然后看下面注释
  3. else 我们就有两种情况,移动或者不移动,即
    dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])

然后判断奇偶性,判断移动过去能否接到苹果,看下面代码注释

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<queue>
#define INF 0x3f3f3f3f;//设为无穷大
using namespace std;
int dp[1005][1005],bag[1005];
const int MOD =1e9;
//int vis[1005][1005],dp[1005];
int main(){int t,w,ans=0;scanf("%d%d",&t,&w);for(int i=1;i<=t;i++)cin>>bag[i];//在哪颗树掉的 for(int i=1;i<=t;i++){for(int j=0;j<=w;j++){//为什么dp[i][0]不都赋值为0?//不移动时间增加也会变化鸭,可以打表观察, if(j==0)dp[i][j]=dp[i-1][j];else dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]);//来回移动时间在1min内,说明移动过去就可以接到,所以要+1if((bag[i]==2&&j%2==1)||(bag[i]==1&&j%2==0))dp[i][j]++;//if(bag[i]-(j&1)==1)dp[i][j]++;ans=max(ans,dp[i][j]);}}//for(int i=1;i<=t;i++)cout<<dp[i][0]<<endl;cout<<ans<<endl; return 0;
}

Apple Catching相关推荐

  1. bzoj 3384: [Usaco2004 Nov]Apple Catching 接苹果(DP)

    3384: [Usaco2004 Nov]Apple Catching 接苹果 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 114  Solved: ...

  2. P2690 [USACO04NOV]Apple Catching G

    P2690 [USACO04NOV]Apple Catching G 题目背景 USACO 题目描述 很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为1和2), 每一棵树上都长满了苹果. ...

  3. Apple Catching经典dp

    Apple Catching - POJ 2385 - Virtual Judge 状态:第i分钟移动j次能吃多少个苹果 决策:第i分钟动不动 转移:如果移动,dp[i][j]=dp[i-1][j-1 ...

  4. [DP]Apple Catching G

    [DP]Apple Catching G 题面 题目描述 输入格式 输出格式 样例 解析 题面 题目描述 很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为111和222), 每一棵树上都 ...

  5. Apple Catching POJ - 2385(基础的动态规划算法)

    题意: 给你两个数字n和m:代表会有n个苹果掉落,m次可以移动的机会:有两棵树,开始你站在树1下面,一分钟只能移动一次,下面的数值代表在哪一颗树下会掉落苹果:问你在可移动的范围内,最多可以接到多少个苹 ...

  6. poj 2382 Apple Catching 入门dp

    点击打开链接 #include <iostream> #include <algorithm> using namespace std; const int M =1010; ...

  7. POJ 2385 Apple Catching

    题目链接 题意 一共有两个苹果树,每个树会落下苹果,一共会掉下T个苹果,Bessie最初在第一棵树,一共可以移动W次,最多可以接到几个苹果 AC dp dp[ i ][ j ]表示第 i 个苹果在移动 ...

  8. POJ - 2385 Apple Catching (dp)

    题意:有两棵树,标号为1和2,在Tmin内,每分钟都会有一个苹果从其中一棵树上落下,问最多移动M次的情况下(该人可瞬间移动),最多能吃到多少苹果.假设该人一开始在标号为1的树下. 分析: 1.dp[x ...

  9. POJ2385 Apple Catching 题解

    博客园同步 原题链接 首先声明:POJ\text{POJ}POJ 数据出错,搞成了"一开始在 111 或 222 棵树都可以",导致错误.事实上本题解可以通过. 听说还有一维 dp ...

最新文章

  1. 山东大学继续教育计算机3,山东大学继续教育数字电子技术基础试题3及答案.doc...
  2. python数据储存_五种使用python储存数据的方式
  3. 深度学习笔记之DenseNets
  4. IOS-C语言第8天,Struct (结构体)
  5. Google or Baidu
  6. java小区管理的项目描述,基于jsp的小区信息管理-JavaEE实现小区信息管理 - java项目源码...
  7. hadoop和spark的区别和联系
  8. matlab mcc 安装,matlab中安装mcc
  9. 单目摄像头光学图像测距_挑战激光雷达,MAXIEYE要重新定义单目摄像头?
  10. 洛谷 P1595 信封问题
  11. (转载)Silverlight同步(Synchronous)调用WCF服务
  12. 计算机专业代码qian,专业分类号及学科代码对照表.doc
  13. VFIO PassThrough
  14. c语言函数名称大全,C语言函数大全
  15. HTML5:动漫电影网站设计(html+css+javascript)
  16. Vue.js Ajax(axios)
  17. 02H5C3-11. Nginx中部署静态网站
  18. TI-C2000-捕获模块ECAP应用-以欧姆龙E6B2-CWZ6C测速编码器为例
  19. 大数据挖掘-使用频率top20中药材(收藏)
  20. 机器学习从入门到创业手记-应用与实践

热门文章

  1. 遥感数据在植物识别的应用
  2. **浅谈STM32系列单片机的零基础学习方法**
  3. 程序员的自我修养——链接、装载与库
  4. 租用游艇问题 石子合并问题 动态规划实验
  5. 番红-固绿染色(植物)
  6. uvm_objection/uvm_objection_events/test_done_objection/callbacks_objection/objection_callback
  7. php extraxt,php中关于extract方法的使用和建议
  8. Pandas——数据清洗1
  9. 【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程
  10. 【渝粤题库】广东开放大学 标准化专题讲座1 形成性考核