hdu1087Super Jumping! Jumping! Jumping!(最大递增序列和)
题意:棋牌游戏如今,一种被称为“超级跳!跳!跳!“HDU是非常流行的。也许你是个好孩子,这个游戏知之甚少,所以我介绍给你吧。

可以玩游戏由两个或两个以上的球员 。它由一个棋盘(棋盘)和一些棋子(棋子),所有的棋子标记的正整数或“开始”或“结束”。玩家从起始点和终点终于跳进。在跳跃的过程中,玩家将访问路径中的棋子,但每个人都必须从一个棋子跳跃到另一个绝对更大(可以假定启动点是一个最小和终点是一个最大)。所有玩家都可以不走回头路。一个跳跃到下一个棋子,也可以去跨越许多的棋子,甚至你可以从起始点到终点直线。当然,在这种情况下,你得到零点。一个球员是一个胜利者,当且仅当,他可以根据他跳的解决方案,获得更大的成绩。请注意,你的分数来自你跳路径上的棋子价值的总和,
你的任务是输出的最大值,根据给定的棋子列表。
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087
题目解析:简单的来说就是求一个序列中一组递增序列的最大和;
如:1,9,6 ,2 ,4,10,5,3,2
它的最大递增序列和为20,递增序列为1,9,10
和最大递增序列有点相似,但算法不太相同;
运行时间:
| 9139511 | Accepted | 1087 | 15MS | 432K | 856 B | C++ |
代码实现:
#include<stdio.h>
#include<cstring>
using namespace std;
#pragma comment(linker,"/STACK:102400000,102400000")
#define MAX 1005
int dp[MAX];//dp[i]存储与num[i]构成递增序列中和最大的一个;
int num[MAX];
int max(int a,int b)
{
return(a>b?a:b);
}
int main()
{
//freopen("input.txt","r",stdin);
int i,j,n;
while(scanf("%d",&n),n)
{
for(i=0;i<n;i++)
scanf("%d",&num[i]);
dp[0]=num[0];
int max1=0;
for(i=1;i<n;i++)
{
dp[i]=num[i];
for(j=0;j<i;j++)
{
if(num[i]>num[j])//找出比num[i]小的数num[j],dp[j]存储与num[j]构成递增序列中和最大的一个;所以加上num[i],也构成递增序列, {
if(dp[i]<dp[j]+num[i])//比较与num[i]能构成递增序列的这些序列和,找出最大的一个,
dp[i]=dp[j]+num[i];
}
}
max1=max(dp[i],max1);//max1为这些递增序列中和最大的一个;
}
printf("%d\n",max1);
}
return 0;
}
hdu1087Super Jumping! Jumping! Jumping!(最大递增序列和)的更多相关文章
- HDU 1087 Super Jumping! Jumping! Jumping! 最长递增子序列(求可能的递增序列的和的最大值) *
Super Jumping! Jumping! Jumping! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64 ...
- ACM: Racing Gems - 最长递增序列
Racing Gems You are playing a racing game. Your character starts at the x axis (y = 0) and procee ...
- POJ 2533 Longest Ordered Subsequence 最长递增序列
Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequenc ...
- uva103(最长递增序列,dag上的最长路)
题目的意思是给定k个盒子,每个盒子的维度有n dimension 问最多有多少个盒子能够依次嵌套 但是这个嵌套的规则有点特殊,两个盒子,D = (d1,d2,...dn) ,E = (e1,e2... ...
- LeetCode 674. Longest Continuous Increasing Subsequence (最长连续递增序列)
Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...
- UVA1619 栈维护递增序列
先说这题的关键性质:每一个数应该只会计算一次,它有一个最小区间[L,R],即它在这个区间内是最小的,最小区间内任何包含它的子区间都不会大于F(L,R)=(a[L]+...+a[R])*min(a[l] ...
- [LeetCode] Longest Continuous Increasing Subsequence 最长连续递增序列
Given an unsorted array of integers, find the length of longest continuous increasing subsequence. E ...
- [LeetCode] Number of Longest Increasing Subsequence 最长递增序列的个数
Given an unsorted array of integers, find the number of longest increasing subsequence. Example 1: I ...
- [Swift]LeetCode674. 最长连续递增序列 | Longest Continuous Increasing Subsequence
Given an unsorted array of integers, find the length of longest continuous increasing subsequence (s ...
随机推荐
- CentOS6.5实现rsync+inotify实时同步
参考博文: 参考1:CentOS6.5实现rsync+inotify实时同步 参考2:inotify-tools+rsync实时同步文件安装和配置 CentOS 6.3下rsync服务器的安装与配置 ...
- Codeforces 489C Given Length and Sum of Digits...
m位长度,S为各位的和 利用贪心的思想逐位判断过去即可 详细的注释已经在代码里啦~ //#pragma comment(linker, "/STACK:16777216") //f ...
- Chapter 6 装饰模式
修饰模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式.就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能. 例如:DataOutputStrea ...
- Asp.Net Core
开源Asp.Net Core小型社区系统 源码地址:Github 前言 盼星星盼月亮,Asp.Net Core终于发布啦!! Asp.Net发布时我还在上初中,没有赶上.但是Asp.Net Core我 ...
- 基于Sql Server 2008的分布式数据库的实践(三)
原文 基于Sql Server 2008的分布式数据库的实践(三) 配置PHP 1.打开PHP配置文件,找到extension=php_mssql.dll,将前面的注释符号去掉 2.找到mssql.s ...
- Python 2.7 学习笔记 字典(map)的使用
python中的字典,就是通常说的map,即 key/value集合的数据结构. 本文来介绍下在python下如何使用字典. 对于map这种数据结构能干什么,我们就不说了,这是一个常见的数据结构,我们 ...
- Pathchirp—有效的带宽估计方法(二)
上一个blog介绍了有效带宽估计方法:pathload.http://blog.csdn.net/ice110956/article/details/11126491. 做一个小小的总结:pathlo ...
- Effective C++ Item 40 明智而审慎地使用多重继承
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:多重继承比单一继承复杂.它可能导致新的歧义性,以及对 virtual 继承的须要 演示 ...
- 一天一个类--ArrayList之一
今天开始打算将JDK7种的一些类的源码分析一下,笔者认为了解源码就是了解其实现过程,这是非常重要的,而不是简单的记住方法的使用,关键是了解其思想和目的这才是重要的.所以笔者决定首先将从一些容器下手.[ ...
- java--多线程之Runnable
引读: 上一篇博文中讲了Thread的继承,存在一个问题就是,如果类本身已经继承了某个父类,又要继承Thread,导致多重继承. [但是我们知道接口是实现多重继承的重要方式].java提供了Runna ...