3384: [Usaco2004 Nov]Apple Catching 接苹果

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 114  Solved: 94
[Submit][Status][Discuss]

Description

    很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为1和2),每一棵树上都长满了苹果.奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果从树上落下.但是,由于苹果掉到地上会摔烂,贝茜必须在半空中接住苹果(没有人爱吃摔烂的苹果).贝茜吃东西很快,所以她接到苹果后仅用几秒钟就能吃完.每一分钟,两棵苹果树其中的一棵会掉落一个苹果.贝茜已经过了足够的训练,只要站在树下就一定能接住这棵树上掉落的苹果.同时,贝茜能够在两棵树之间快速移动(移动时间远少于1分钟),因此当苹果掉落时,她必定站在两棵树其中的一棵下面.此外,奶牛不愿意不停地往返于两棵树之间,因此会错过一些苹果, 苹果每分钟掉落一个,共T(1≤T≤1000)分钟,贝茜最多愿意移动W(I≤w≤30)次.现给
出每分钟掉落苹果的树的编号,要求判定贝茜能够接住的最多苹果数.开始时贝茜在1号树下.

Input

    第1行:由空格隔开的两个整数T和W.
    第2到T+1行:1或2(每分钟掉落苹果的树的编号).

Output

    在贝茜移动次数不超过W的前提下她能接到的最多苹果数

Sample Input

7 2
2
1
1
2
2
1
1

Sample Output

6

dp[i][j]表示已经移动了i次,现在准备接第j个苹果的最优解

有dp[i][j] = max(dp[i-1][j-1], dp[i][j-1])+第j个苹果是否能接到

因为一开始在树1,只有两棵树,所有i为偶数时一定在第1棵树下,i为奇数时一定在第2棵树下,简单很多

#include<stdio.h>
#include<algorithm>
using namespace std;
int dp[35][1005], a[1005];
int main(void)
{int i, j, n, m, ans;scanf("%d%d", &n, &m);for(i=1;i<=n;i++){scanf("%d", &a[i]);dp[0][i] = dp[0][i-1]+(a[i]==1);}for(i=1;i<=m;i++){for(j=1;j<=n;j++){if(i%2)dp[i][j] = max(dp[i][j-1], dp[i-1][j-1])+(a[j]==2);elsedp[i][j] = max(dp[i][j-1], dp[i-1][j-1])+(a[j]==1);}}ans = 0;for(i=0;i<=m;i++)ans = max(ans, dp[i][n]);printf("%d\n", ans);return 0;
}

bzoj 3384: [Usaco2004 Nov]Apple Catching 接苹果(DP)相关推荐

  1. bzoj 3385: [Usaco2004 Nov]Lake Counting 数池塘(DFS)

    3385: [Usaco2004 Nov]Lake Counting 数池塘 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 78  Solved: 6 ...

  2. Apple Catching

    Apple Catching - POJ 2385 - Virtual Judge https://vjudge.net/problem/POJ-2385 题意:有两棵树,每分钟树上会掉下一颗苹果,问 ...

  3. P2690 [USACO04NOV]Apple Catching G

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

  4. Apple Catching经典dp

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

  5. [DP]Apple Catching G

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

  6. Apple II是苹果公司制作的第一种普及的微电脑

    Apple II是苹果公司制作的第一种普及的微电脑.它的直系先祖是Apple I--一种有限的.以印刷電路板组成的电脑.许多电子玩家基于此电脑创新了许多功能,使Apple II达到商业上的成功.自19 ...

  7. BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数(数位DP+恶心细节)

    BZOJ 1662: [Usaco2006 Nov]Round Numbers 圆环数 Time Limit: 5 Sec  Memory Limit: 64 MB Description 正如你所知 ...

  8. Apple Pay 和 苹果内购买

    在做开发的之前先说清楚 Apple Pay 和苹果内购不是一个东西,大家得区分开; Apple Pay –> 是类似于支付宝支付和微信支付的,用于购买实物的一种支付方式;日常会用到的场景是买个电 ...

  9. “Apple Glass”设备(苹果眼镜)的功能介绍

    苹果即将推出的"Apple Glass"设备(苹果眼镜)可能会让用户无需解锁iPhone,直接通过身份验证.其实早在2020年初就有报道过类似研究,即采用"Apple G ...

最新文章

  1. python基础===Number
  2. bzoj 36733674: 可持久化并查集 by zky
  3. 漫画:通俗易懂的进程与线程解释
  4. python判断英文字母_Python判断两个单词的相似度
  5. 分享一些优化博客的心得
  6. java socket ip_JAVA 网络编程 TCP/IP、Socket 和协议设计
  7. 10个遥远但近在人间的天堂!
  8. 获取数据库名称dbName
  9. 【小程序】【Tips】【实践】Json 的对象 和 Json字符串 的区别和转换
  10. c++ 加载库错误问题解决
  11. Leetcode: 2. Add Two Numbers
  12. redis数据类型-列表(List)
  13. 阮一峰:WebSocket 教程
  14. 多功能工具箱微信小程序源码
  15. 读取Xilinx FPGA芯片的唯一ID号DNA
  16. ETL——实现Kettle作业定时任务
  17. 实验部分小结:数据集处理部分
  18. Windows系统操作指令
  19. 迅雷下载 HP QTP LR QC AML MyEclipse8.5 Tomcat7地址
  20. OriginPro2021安装注意事项(详细)

热门文章

  1. python代码示例-《Python编程:从入门到实践》DEMO实例代码
  2. python能做什么项目-这十个Python实战项目,让你瞬间读懂Python!
  3. python怎么读取excel-python读写excel文件
  4. 语音识别的准确率,永远达不到100%?
  5. String.format()用法
  6. python直方图解释,请用Python详细解释二维直方图
  7. c++ map是有序还是无序的_go 学习笔记之数组还是切片都没什么不一样
  8. JavaScript var语句简析
  9. ES6 async函数(超级详细、易懂)
  10. csgo自动选择服务器,CSGO服务器怎么选择合适的配置?CSGO服务器如何选择系统?...