该题可以算是一道经典的DP题了,题中数据是这样的。以 3 1 3 2 为例,首先 3 代表有三个数, 后面给出三个数,求该串的一个子串,使得其值一直是递增的,而且要求输出最大的和值。可以论证,该子串一定会是最长上升子串,因为,如果一个串还能够插入一个元素的话,那么这个串就一定不是最大的和了。而这个最长的上升子串还满足是所有同样长度的子串中最优的,和值最大。
  具体实现过程这样来,首先记录下N个数  rec[] 数组,对于每个数开辟一个 dp[] 数组,用来记录到达该数值时的最大和值,dp[]数组很重要,因为它能够对解决后面的问题提供信息,记录局部的最有解。 动态规划方程是  dp[i] = Max( dp[i] , dp[j] + rec[i] ) , 这个方程的前提是,j < i  &&  rec[j] < rec[i], 因为题目要求是从前往后跳,且只能跳到较大的数字上面去。最后再遍历一次,找到最大的值即可。
o(n^2)复杂度
#include<stdio.h>
#include<string.h>
int main()
{
int n,a[],i,j,dp[],maxx;
while(scanf("%d",&n),n)
{
maxx=-;
for(i=;i<n;i++)
{
scanf("%d",&a[i]);
dp[i]=a[i];
for(j=;j<i;j++)
{
if(a[j]<a[i])
dp[i]=dp[i]>(dp[j]+a[i])? dp[i]:(dp[j]+a[i]);
}
}
for(i=;i<n;i++)
{
maxx=maxx>dp[i]? maxx:dp[i];
}
printf("%d\n",maxx);
}
return ;
}

HDU 1087 Super Jumping! Jumping! Jumping!(最长上升子序列,dp)的更多相关文章

  1. hdu 1087 Super Jumping!(类最长上升子序列)

    题意:在一组数中选取一个上升子序列,使得这个子序列的和最大. 解:和最长上升子序列dp过程相似,设dp[i]为以第i位为结尾最大和,那么dp[i]等于max(dp[0],dp[1],,,,,dp[i- ...

  2. HDU 1087 Super Jumping! Jumping! Jumping

    HDU 1087 题目大意:给定一个序列,只能走比当前位置大的位置,不可回头,求能得到的和的最大值.(其实就是求最大上升(可不连续)子序列和) 解题思路:可以定义状态dp[i]表示以a[i]为结尾的上 ...

  3. HDU 1087 Super Jumping! Jumping! Jumping! 最长递增子序列(求可能的递增序列的和的最大值) *

    Super Jumping! Jumping! Jumping! Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64 ...

  4. 最长上升子序列模板 hdu 1087 Super Jumping! Jumping! Jumping!

    Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. May ...

  5. 【最长上升子序列】HDU 1087——Super Jumping! Jumping! Jumping!

    来源:点击打开链接 最长上升子序列的考察,是一个简单的DP问题.我们每一次求出从第一个数到当前这个数的最长上升子序列,直至遍历到最后一个数字为止,然后再取dp数组里最大的那个即为整个序列的最长上升子序 ...

  6. HDU - 1087 Super Jumping!Jumping!Jumping!(dp求最长上升子序列的和)

    传送门:HDU_1087 题意:现在要玩一个跳棋类游戏,有棋盘和棋子.从棋子st开始,跳到棋子en结束.跳动棋子的规则是下一个落脚的棋子的号码必须要大于当前棋子的号码.st的号是所有棋子中最小的,en ...

  7. HDU 1087 Super Jumping! Jumping! Jumping!(求LSI序列元素的和,改一下LIS转移方程)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1087 Super Jumping! Jumping! Jumping! Time Limit: 20 ...

  8. hdu 1087 Super Jumping! Jumping! Jumping!(动态规划DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 Super Jumping! Jumping! Jumping! Time Limit: 200 ...

  9. HDU 1087 Super Jumping! Jumping! Jumping! (动态规划、最大上升子序列和)

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  10. HDU 1087 Super Jumping! Jumping! Jumping! --- DP入门之最大递增子序列

    DP基础题 DP[i]表示以a[i]结尾所能得到的最大值 但是a[n-1]不一定是整个序列能得到的最大值 #include <bits/stdc++.h> using namespace ...

随机推荐

  1. 洛谷 1865 A%B问题

    题目背景 题目名称是吸引你点进来的 实际上该题还是很水的 题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对 ...

  2. unity基本操作二

    一:error1,先断网再启动点击Manual Activation点击Save License生成相应的alf文件2,联网打开https://license.unity3d.com/manual上传 ...

  3. Qt for Android 程序禁止屏幕旋转

    有时候我们希望让一个程序的界面始终保持在一个方向,不随手机(平板)方向旋转而变化:在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入 android:screen ...

  4. lnmp 下安装yaf

    须有配置好的环境 详情见:centos6.5下yum安装lnmp(适合刚入职的新手的方法) http://www.cnblogs.com/qzjpkfj/p/4211126.html 具体安装步骤详情 ...

  5. 记录sublime text2的技巧

    好吧,其实俺是sublime text控,用了那么的编辑器,从最初的notepad++,后来到Dreawaver,现在只钟情于sublime text2....记录一些比较实用的技巧和网站吧!! 方便 ...

  6. CentOS 5.8 升级php版本

    一:我们都知道系统的yum源安装出来的php版本不是5.1的就是5.3  那就是说 有些程序不支持那么低的版本的呢 那我们该怎么办呢 接下来 简单的说下php的版本升级  编译升级太慢了 这里我们选择 ...

  7. Windows7系统禁用USB和启用USB方法

    被迫装了XX软件之后,无线网络和USB都被禁用了,XX软件还不能被卸载.只能用PE进去时候把XX软件安装目录进行删除,但是删除之后还是不能识别U盘,从网上找到办法一看是注册表的项被修改了. 注册表项为 ...

  8. webpack使用webpack-dev-middleware进行热重载

    新手,刚开始学习webpack,想使用webdevserver,但定制性太差,于是研究了一下使用webpack-dev-middleware进行指定. 根据文档https://www.npmjs.co ...

  9. 基于lnmp.org的xdebug安装

    1. 下载xdebug wget http://xdebug.org/files/xdebug-2.3.3.tgz 2. 创建一个目录: mkdir ./xdebug 3. 复制xdebug包到xde ...

  10. R简易入门(一)

    本文内容来源:https://www.dataquest.io/mission/126/introduction-to-r 本文数据来源:https://www.whitehouse.gov/21st ...