poj3616题(动态规划),看了别人的提示,自己又写了一遍

http://blog.csdn.net/xiaozhuaixifu/article/details/10818657参考文档链接

动态规划的主要三种思维方式:递推(从前往后想),状态转移(从后往前想),记忆化搜索(记录之后直接查寻)。这里使用状态转移的思维解题,明确除了没有移动这种情况,每次接受到或接受不到的位置可以由移位或不移位两种情况转移而来,到了该位置后根据原始数据直接加或不加总和。

#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
const int Max_T = 1001;
const int Max_W = 31;
int dp[Max_T][Max_W];
int num[2][Max_T];
int T, W;
int main()
{
        memset(num, 0, sizeof(num));
        memset(dp, 0, sizeof(dp));
        while(scanf("%d %d", &T, &W) != EOF) {
                for(int i = 1; i <= T; i ++) {
                        int tmp;
                        scanf("%d", &tmp);
                        num[tmp == 2][i] = 1;//记录哪棵树上有苹果
                }
                for(int i = 1; i <= T; i++) {//初始状态即为只有一个苹果的状况
                        for(int j = 0; j <= W && j <= i; j++) {
                                if(j == 0)
                                        dp[i][j] = dp[i - 1][j] + num[0][i];//没有移动则直接加第一棵树的苹果
                                else
                                        dp[i][j] = max(dp[i - 1][j - 1], dp[i - 1][j]) + num[j & 1][i];//根据是否转移得到现在的状态
                        }
                }
                printf("%d\n", dp[T][W]);
        }
        return 0;
}

poj3616题(动态规划),看了别人的提示,自己又写了一遍,布布扣,bubuko.com

时间: 2024-08-02 23:22:28

poj3616题(动态规划),看了别人的提示,自己又写了一遍的相关文章

BNUOJ 34985 Elegant String 2014北京邀请赛E题 动态规划 矩阵快速幂

Elegant String Time Limit: 1000msMemory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: Main We define a kind of strings as elegant string: among all the substrings of an elegant string, none of them is a permutation of "0, 1,-, k

CTF---Web入门第三题 这个看起来有点简单!

这个看起来有点简单!分值:10 来源: 西普学院 难度:易 参与人数:10515人 Get Flag:3441人 答题人数:4232人 解题通过率:81% 很明显.过年过节不送礼,送礼就送这个 格式: 解题链接: http://ctf5.shiyanbar.com/8/index.php?id=1 原题链接:http://www.shiyanbar.com/ctf/33 [解题报告] 这是我入门Web开始写的第三道题,这道题看样子通过率还蛮高,难易程度显示易,咱们可以试试这题!咱们点开这个题看一

贴贴代码,看懂别人的代码也是一项好技能。

// Test1_3_P16.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include "../include/GL/freeglut.h" static GLfloat spin = 0.0; void init(void) { glClearColor(0.0,0.0,0.0,0.0); glShadeModel(GL_FLAT); } void display(void) { glClear(GL_COLOR_B

归并排序(看了别人的博客明白了也写个博客,希望这样不算抄袭~)

归并排序还是用到了递归(原来难理解的东西是因为递归),所以先不说递归就不会觉得难了.(额..可惜已经说了,好吧,先当我没说= =) 那么先讨论一个问题:怎么把两个有序的数组合并成一个新的有序数组? 答:这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数.然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可. (此答摘自我看懂的那个人的博客,为防止侵权这里贴上他的网址:http://blog.csdn.net/morewindows/artic

怎么看懂别人的代码

一,程序的结构及流程基本上是顺序,循环,选择. 二,业务数据---->对象形式(js-->{}, new function(){}/Java object) 业务流程---->传入参数,返回值. 流程可以先看作一步,然后再分为两步,然后再细分为三步,以此类推. 业务流程就是数据转化(数据对象get/set, read/write)的流程. function 只是一个流程单元.

今天看了别人网站源码,发现几个好的jq插件。

modernizr.js  检测浏览器html5支持情况 parallax.js  轻量级视差插件 browserSwipe.js 当页面禁用滚动时,允许使用滑出的方式转换页面. touchswipe.js  就是微信上很流行的那个一屏一屏滚动的

JavaScript中的作用域和作用域链(边学边写)[看着别人的博客纯手敲]

作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域的工作原理.今天这篇文章对JavaScript作用域和作用域链简单的介绍,希望能帮助大家更好的学习JavaScript. JavaScript作用域 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变量的作用域有全局作用域和局部作用域两种. 1.全局作用域(Global Scope

看完深入浅出的Javascript,简单写下

628页,几天的时间,慢慢的从头看过来,也一遍遍实践过来,一些概念一直都知道,但是程序的世界就是这样,所有的东西就是那些,但是就是喜欢看这种深入浅出的书,就是喜欢看自己知道的东西,能讲出来多少不一样的角度,真的还是有很多收获. 这也许就是技术的魅力,可以给你一个安心的地方 但是这里有的是无止境的学习,而且这里也会交给你做事的道理,也许不太能教会你职场的学问,不能教你怎么做生意,但是这里教给你的,内化在心里的是别人谁也没有办法抢走的,这就是我们学习语言的乐趣所在. 即使是半路出家,及时我接触网络的

看外国女程序员如何直播写代码

我第一次直播写代码是在去年七月份.想要直播一下我在业余时间内为开源项目领域所做的工作,尽管在youtube上的大部分直播都是关于游戏的.我比较擅长于NodeJS的硬件库方面的工作(尽管大部分项目都是自己的).并且我在youtube上曾经开启过一个房间了,那为什么我不继续做下去?我的栏目可以叫做:基于JavaScript的硬件开发. 当然,我并不是第一个在直播平台直播代码的,Handmade Hero是我见到的第一个直播代码的人.接下来Vlambeer的工程师们也开始了直播代码,他们在youtub