题目链接:http://poj.org/problem?id=2385

题意:最开始Bessie站在树1下面,每一个单位时间有颗苹果从树1或者树2上落下来。每个单位时间Bessie可以移动一次位置,时间长度为T(<=1000),Bessie最多移动W次(<=30)。求Bessie最多能得到多少苹果。

思路:好久没写过dp题了,这道题又弄了好久。QAQ...

   创建dp[1005][35]。

   其中dp[i][j]表示第i个单位时间时,Bessie移动了j次最多能得到的苹果数。首先要初始化i=1的情况:

        if(a[1]==1)
            dp[1][0]=1;
        else
            dp[1][1]=1;

   当i>=2时:

      如果j==0:dp[i][j]=dp[i-1][j]+(a[i]==1)

      否则:dp[i][j]=max(dp[i-1][j],dp[i-1][j-1)

         if(j%2+1==a[i]) ++dp[i][j]。

代码如下:

#include<cstdio>
#include<algorithm>
using namespace std; int t,w,ans,a[],dp[][]; int main(){
scanf("%d%d",&t,&w);
for(int i=;i<=t;++i)
scanf("%d",&a[i]);
if(a[]==)
dp[][]=;
else
dp[][]=;
for(int i=;i<=t;++i){
for(int j=;j<=min(i,w);++j){
if(j==)
dp[i][j]=dp[i-][j]+(a[i]==);
else{
dp[i][j]=max(dp[i-][j-],dp[i-][j]);
if(j%+==a[i]) ++dp[i][j];
}
}
}
for(int i=;i<=min(t,w);++i)
if(dp[t][i]>ans)
ans=dp[t][i];
printf("%d\n",ans);
return ;
}

poj2385(基础DP)的更多相关文章

  1. 基础dp

    队友的建议,让我去学一学kuangbin的基础dp,在这里小小的整理总结一下吧. 首先我感觉自己还远远不够称为一个dp选手,一是这些题目还远不够,二是定义状态的经验不足.不过这些题目让我在一定程度上加 ...

  2. 基础DP(初级版)

    本文主要内容为基础DP,内容来源为<算法导论>,总结不易,转载请注明出处. 后续会更新出kuanbin关于基础DP的题目...... 动态规划: 动态规划用于子问题重叠的情况,即不同的子问 ...

  3. hdu 5586 Sum 基础dp

    Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Desc ...

  4. hdu 4055 Number String (基础dp)

    Number String Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  5. 训练指南 UVA - 10917(最短路Dijkstra + 基础DP)

    layout: post title: 训练指南 UVA - 10917(最短路Dijkstra + 基础DP) author: "luowentaoaa" catalog: tr ...

  6. 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP)

    layout: post title: 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP) author: "luowentaoaa" catalog: true ...

  7. 「kuangbin带你飞」专题十二 基础DP

    layout: post title: 「kuangbin带你飞」专题十二 基础DP author: "luowentaoaa" catalog: true tags: mathj ...

  8. M - 基础DP

    M - 基础DP Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descriptio ...

  9. lightoj1004【基础DP】

    从低端到顶端求个最大值: 思路: 基础DP,递推 #include<cstdio> #include<queue> #include<map> #include&l ...

  10. poj2385【基础DP】

    挑战DP 题意: 有两棵树,给每分钟有苹果掉落的苹果树,一开始B在 1 树下,B最多只能移动W步,求一个最大数量拿到的. 思路: 一开始想的是,我对于每分钟情况来说无非是等于之前的在本位置+1,或者等 ...

随机推荐

  1. if语句分析

    1.if语句的反汇编判断 if语句反汇编后的标志:     执行各类影响标志位的指令             jxx xxxx 如果遇到上面的指令,则很可能是if语句:   例如:     1.案例一 ...

  2. jquery bind()方法 语法

    jquery bind()方法 语法 作用:bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数. 说明:规定向被选元素添加的一个或多个事件处理程序,以及当事件发生时运行 ...

  3. CDOJ 1269 ZhangYu Speech 数组处理

    ZhangYu Speech Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submi ...

  4. OI路上 day -9

    /* 嗯还有9天. 就只有9天了. 啊还剩9天吖! 多年后 我可能还会记得 那些年,我们学过的算法. 多年后 我可能会对别人说 我学过OI我喜欢OI并一直热爱着它. 9天后 我可能再也不会来到这个地方 ...

  5. 微信小程序_(组件)可拖动movable-view

    微信小程序movable-view组件官方文档 传送门 Learn 一.moveable-view组件 一.movable-view组件 direction:movable-view的移动方向,属性值 ...

  6. (三)C语言之变量

  7. LeetCode 137. 只出现一次的数字 II(Single Number II)

    题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次.找出那个只出现了一次的元素. 说明: 你的算法应该具有线性时间复杂度. 你可以不使用额外空间来实现吗? 示例 1: ...

  8. Java环境变量的操作系统原理[浅谈]

    从知乎摘抄过来的文章,图没有复制过来,当作自己的笔记.其中我认为重要的部分(涉及操作系统的)已经加粗了. 本文源自:你应该知道的 Windows 环境变量 - 麓山南人的文章 - 知乎 https:/ ...

  9. Java-JVM 栈帧(Stack Frame)

    一.概述 栈帧位置 JVM 执行 Java 程序时需要装载各种数据到内存中,不同的数据存放在不同的内存区中(逻辑上),这些数据内存区称作运行时数据区(Run-Time Data Areas). 其中 ...

  10. 解决JxBrowser中BrowserView控件覆盖其他控件的办法

    https://blog.csdn.net/w815878564/article/details/79699559 JxBrowser是一个基于chromium的Java浏览器组件,同时支持Swing ...