poj 2385 树上掉苹果问题 dp算法
题意:有树1 树2 会掉苹果,奶牛去捡,只能移动w次,开始的时候在树1 问最多可以捡多少个苹果?
思路: dp[i][j]表示i分钟移动j次捡到苹果的最大值
实例分析
0,1 1,2...说明 偶数在树1 奇数在树2
for (int i = 1; i <= n; i++)
{
scanf("%d", &t[i]);
t[i] -= 1;
}
for (int i = 1; i <= n; i++)
for (int j = 0; j <= w; j++)
{
if (j % 2) dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1]) + t[i];
else dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1]) + !t[i];
}
这里有个小技巧,不是每次要求输入1 2 2 之类的数据,我们把它们都-1 然后就可以就比较好看了
解释一下两句dp语句
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - 1]) 表示上一次要么在树1 要么在树2的情况,但是我只需要它们两者之间的最大值
解决问题的代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int dp[][];
int t[];
int main()
{
int n, w;
scanf("%d%d", &n, &w);
for (int i = ; i <= n; i++)
{
scanf("%d", &t[i]);
t[i] -= ;
}
for (int i = ; i <= n; i++)
for (int j = ; j <= w; j++)
{
if (j % ) dp[i][j] = max(dp[i - ][j], dp[i - ][j - ]) + t[i];
else dp[i][j] = max(dp[i - ][j], dp[i - ][j - ]) + !t[i];
}
printf("%d\n", dp[n][w]);
}
poj 2385 树上掉苹果问题 dp算法的更多相关文章
- poj 3280 回文字符串问题 dp算法
题意:给一个字符串,构成回文(空也是回文) 其中增删都需要代价.问:代价最少? 思路:把字符串s变空 dp[i][j]表示变成回文的最小代价 for(i=m-1;i>=0;--i) ...
- poj 3616 奶牛产奶问题 dp算法
题意:奶牛产奶,农夫有m个时间段可以挤奶,在工作时间 f t 内产奶量为m,每次挤完奶后,奶牛需要休息R.问:怎么安排使得产奶量最大? 思路:区间dp dp[i]表示第i个时段 对农夫工作的结束时间 ...
- poj 3176 三角数和最大问题 dp算法
题意:给一个三角形形状的数字,从上到下,要求数字和最大 思路 :dp dp[i+1][j]=max(dp[i+1][j],dp[i][j]+score[i+1][j]) dp[i+1][j+1]=ma ...
- poj 2385 Apple Catching(记录结果再利用的动态规划)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 有两颗苹果树,在每一时刻只有其中一棵苹果树会掉苹果,而Bessie可以在很短的时 ...
- POJ - 2385 Apple Catching (dp)
题意:有两棵树,标号为1和2,在Tmin内,每分钟都会有一个苹果从其中一棵树上落下,问最多移动M次的情况下(该人可瞬间移动),最多能吃到多少苹果.假设该人一开始在标号为1的树下. 分析: 1.dp[x ...
- poj 2385【动态规划】
poj 2385 Apple Catching Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14007 Accepte ...
- 【POJ - 2385】Apple Catching(动态规划)
Apple Catching 直接翻译了 Descriptions 有两棵APP树,编号为1,2.每一秒,这两棵APP树中的其中一棵会掉一个APP.每一秒,你可以选择在当前APP树下接APP,或者迅速 ...
- dfs与dp算法之关系与经典入门例题
目录 声明 dfs与dp的关系 经典例题-数字三角形 - POJ 1163 题目 dfs思路 解题思路 具体代码 dp思路 解题思路 具体代码 声明 本文不介绍dfs.dp算法的基础思路,有想了解的可 ...
- 0-1背包的动态规划算法,部分背包的贪心算法和DP算法------算法导论
一.问题描述 0-1背包问题,部分背包问题.分别实现0-1背包的DP算法,部分背包的贪心算法和DP算法. 二.算法原理 (1)0-1背包的DP算法 0-1背包问题:有n件物品和一个容量为W的背包.第i ...
随机推荐
- Auto yes to the License Agreement on sudo apt-get -y install oracle-java7-installer
参考一 参考二 我自己的做法是: && add-apt-repository ppa:webupd8team/java \ && apt-get update \ &a ...
- B - Median Pyramid Easy 构造题
B - Median Pyramid Easy Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statemen ...
- Sql server 查询指定时间区间工作日数、休息日数等日期操作
1.查询指定时间区间的工作日 这个主要难点是法定节假日,国家的法定节假日每年都不一样,还涉及到调休,所以我们设计一个假日表.主要字段有年份,类型(是否调休),假期日期.如下: CREATE TABLE ...
- 关于报错“More than one fragment with the name [spring_web] was found. This is not legal ...”的解决办法
最近在搭建一个spring mvc 项目时遇到“More than one fragment with the name [spring_web] was found. This is not leg ...
- ImageLoader常用方法注释
ImageLoader中的常用方法及相关作用注释 ImageLoader 的ImageLoaderConfiguration config 配置 ImageLoaderConfiguration co ...
- 初识RatingBar
RatingBar,SeekBar和ProgressBar的子类 <RatingBar android:id="@+id/ratingBar2" android:layout ...
- 企业数字化转型与SAP云平台
我们生活在一个数字化时代.信息领域里发展迅猛的数字技术和成本不断降低的硬件设备,正以前所未有的方式改变着我们工作和生活的方式. Digital Mesh 美国一家著名的从事信息技术研究和提供咨询服务的 ...
- GentleNet使用之详细图解[语法使用增强版]
目录 第一章 开发环境 第二章 简介 第三章 Gentle.Net-1.5.0 下载文件包介绍 第四章 使用步骤 第五章 源码下载 第一章.开发环境: Vs 2010 + Sql 2005 + Gen ...
- 用 label 控制 Pod 的位置
默认配置下,Scheduler 会将 Pod 调度到所有可用的 Node.不过有些情况我们希望将 Pod 部署到指定的 Node,比如将有大量磁盘 I/O 的 Pod 部署到配置了 SSD 的 Nod ...
- C++容器类-vector
vecto之简单应用: #include<vector> #include<iostream> using namespace std; int main() { vector ...