题目:G - Super Jumping! Jumping! Jumping!
Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know little about this game, so I introduce it to you now.
题目的图:https://cn.vjudge.net/contest...
The game can be played by two or more than two players. It consists of a chessboard(棋盘)and some chessmen(棋子), and all chessmen are marked by a positive integer or “start” or “end”. The player starts from start-point and must jumps into end-point finally. In the course of jumping, the player will visit the chessmen in the path, but everyone must jumps from one chessman to another absolutely bigger (you can assume start-point is a minimum and end-point is a maximum.). And all players cannot go backwards. One jumping can go from a chessman to next, also can go across many chessmen, and even you can straightly get to end-point from start-point. Of course you get zero point in this situation. A player is a winner if and only if he can get a bigger score according to his jumping solution. Note that your score comes from the sum of value on the chessmen in you jumping path.
Your task is to output the maximum value according to the given chessmen list.
Input
Input contains multiple test cases. Each test case is described in a line as follow:
N value_1 value_2 …value_N
It is guarantied that N is not more than 1000 and all value_i are in the range of 32-int.
A test case starting with 0 terminates the input and this test case is not to be processed.
Output
For each case, print the maximum according to rules, and one line one case.
Sample Input
3 1 3 2
4 1 2 3 4
4 3 3 2 1
0
Sample Output
4
10
3

大意:就是每次输入的时候给一个数的序列,然后找里面的递增序列的和最大的那个,不是求最长的那个(而且这个是递增,不是连续递增!!);

思路:通过一个dp数组来存到这个地方的最大可能的值。方法即将你要找个的这个位置认定为最后一个,然后依次从最开始的位置到达这个位置,然后找对应的最大的递增和,且每个位置都是用dp数组来存到达这个位置的递增最大值,所有在从最开始的位置依次往后找的时候也是用dp数组来对应比较,而不是一开始存数的那个数组;

代码:

#include<stdio.h>
#include<string.h>int a[1005],d[1005];
int main()
{int n,i,j;while(scanf("%d",&n)!=EOF && n!=0){memset(d,0,sizeof(d));for(i=0;i<n;++i)scanf("%d",&a[i]);d[0]=a[0];for(i=1;i<n;++i){for(j=0;j<i;++j){if(a[j]<a[i])d[i]=d[i]>(d[j]+a[i])?d[i]:(d[j]+a[i]);//这里就是更新这个和}                                //以保证这个递增和是最大的值的情况;d[i]=d[i]>a[i]?d[i]:a[i];  //这个操作是为了保证如果前面都没有递增的;}                            //则最后这个dp数组中要存的是其自身,int k=0;                        //用三目运算符的d[i]与其自身比较for(i=1;i<n;++i)            //可以在不讨论的情况下将所有情况总结出一个if(d[k]<d[i])            //共用的,当然也可以转换成用if进行;k=i;printf("%d\n",d[k]);}return 0;
}

动态规划入门G - Super Jumping! Jumping! Jumping! (有关最优子序列的一个相关题目)...相关推荐

  1. LQ训练营(C++)学习笔记_动态规划入门

    动态规划入门 五.动态规划入门 1.动态介绍 1.1动态规划基本思路 1.2 动态规划基本概念 1.2.1 阶段 1.2.2 状态 1.2.3 决策 1.2.4 状态转移方程 1.2.5 策略 1.3 ...

  2. 动态规划入门之国王的金矿

    最近学习算法,对动态规划不太了解,使用的时候照搬转移方程式,知其然不知其所以然,今天看到一篇动态规划的教程,解释得非常通俗,原文在这里[动态规划入门教程] (http://blog.csdn.net/ ...

  3. 很特别的一个动态规划入门教程

    很特别的一个动态规划入门教程 今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下--- (说明一下,本人非常痛恨教材公式定理漫天飞,实际 ...

  4. C++动态规划入门习题+解析

    动态规划入门 ❤️‍

  5. 力扣动态规划入门21天刷题计划(共计46题)

    刷题地址:https://leetcode-cn.com/study-plan/dynamic-programming/?progress=8e97f6 动态规划常常适用于有重叠子问题和最优子结构性质 ...

  6. 【LeetCode】动态规划入门(专项打卡21天合集)

    [LeetCode]动态规划入门(专项打卡21天合集) 下图为证 文章目录 [LeetCode]动态规划入门(专项打卡21天合集) Day1 斐波拉契数 第 N 个泰波那契数 Day2 爬楼梯 使用最 ...

  7. 动态规划入门问题:猴子与香蕉

    动态规划入门问题猴子与香蕉 一.猴子与香蕉 题目描述 一组研究人员正在设计一个测试猴子IQ的实验.他们把香蕉吊在屋顶上,同时给猴子提供了砖块.如果猴子够聪明,它会把砖块一个个叠起来做成一个塔,然后爬上 ...

  8. ACM题解——动态规划专题——G天上掉馅饼

    ACM题解--动态规划专题--G.天上掉馅饼 题目描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉 ...

  9. 动态规划入门看这篇就够了,万字长文!

    今天是小浩算法 "365刷题计划" 动态规划 - 整合篇.大家应该期待已久了吧!奥利给! 01 PART 动态规划是啥 我们把要解决的一个大问题转换成若干个规模较小的同类型问题,当 ...

  10. 1075: 动态规划入门(中链式2:能量项链)

    1075: 动态规划入门(中链式2:能量项链) 时间限制: 1 Sec 内存限制: 128 MB 题目描述 [问题描述] 能量球组成的项链.相邻两球可以合并产生新球.合并规则:如果前一颗能量珠的头标记 ...

最新文章

  1. iOS 11 安全区域适配总结
  2. 学计算机专业需要考的证有哪些科目,自考计算机专业的考试科目有哪些?
  3. boot数据加解密 spring_SpringBoot 集成 Jasypt 对数据库加密以及踩坑
  4. C++中嵌入ie浏览器总结 .
  5. tcl把文本产生html,TCL脚本数据文件格式(译文)
  6. velocityjs 动画库 比jquery默认的animate强
  7. 序1--年轻正当时(特权)
  8. P4480-[BJWC2018]餐巾计划问题【三分,贪心】
  9. Kettle on MaxCompute使用指南
  10. yaf php源码,PHP-Yaf执行流程-源码分析
  11. 互联网时代的了解和未来的预期_互联网时代品牌农业该如何营销 后园带你了解这五点...
  12. [转]网络性能评估工具Iperf详解(可测丢包率)
  13. 【分布式机器学习】基本知识
  14. 做课题与科研项目常用的研究方法
  15. 根据奖品权重计算中奖概率实现抽奖的方法
  16. 全球IT经理一致喜爱的ITSM系统、it服务台软件
  17. 如何在wince下添加和删除驱动(作者:wogoyixikexie@gliet)
  18. DSP在SYS/BIOS下串口(UART)接收之环形队列
  19. ESP32设备驱动-ADXL345三轴加速计驱动
  20. SEO中长尾关键字的挖掘与布局思路

热门文章

  1. 高德地图轨迹方向_阿里巴巴高德地图首席科学家任小枫:高精算法推动高精地图落地...
  2. DSSM核心思想是把查询文本(query)和内容文本(doc)映射到同维度的语义空间中, 以最优化查询文本和内容文本的语义向量之间的余弦相似度为目的
  3. python实现连接池技术
  4. 创建一个超链接,点击这个超链接,显示数据库中的数据信息:MVC模式查询
  5. 电脑太慢了最简单的办法怎么弄_最简单的电脑端微信多开方法
  6. Scala入门(2)
  7. 特征选择和共线性问题
  8. 后缀数组算法概述及习题
  9. cfupload java_java的web项目上传文件和下载
  10. Websocket 从header读取数据