hdu1087Super Jumping! Jumping! Jumping!(最大递增序列和)
来源:互联网 发布:数据流程图的分层方法 编辑:程序博客网 时间:2024/06/05 10:05
题意:棋牌游戏如今,一种被称为“超级跳!跳!跳!“HDU是非常流行的。也许你是个好孩子,这个游戏知之甚少,所以我介绍给你吧。
可以玩游戏由两个或两个以上的球员 。它由一个棋盘(棋盘)和一些棋子(棋子),所有的棋子标记的正整数或“开始”或“结束”。玩家从起始点和终点终于跳进。在跳跃的过程中,玩家将访问路径中的棋子,但每个人都必须从一个棋子跳跃到另一个绝对更大(可以假定启动点是一个最小和终点是一个最大)。所有玩家都可以不走回头路。一个跳跃到下一个棋子,也可以去跨越许多的棋子,甚至你可以从起始点到终点直线。当然,在这种情况下,你得到零点。一个球员是一个胜利者,当且仅当,他可以根据他跳的解决方案,获得更大的成绩。请注意,你的分数来自你跳路径上的棋子价值的总和,
你的任务是输出的最大值,根据给定的棋子列表。
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087
题目解析:简单的来说就是求一个序列中一组递增序列的最大和;
如:1,9,6 ,2 ,4,10,5,3,2
它的最大递增序列和为20,递增序列为1,9,10
和最大递增序列有点相似,但算法不太相同;
运行时间:
9139511 Accepted108715MS432K856 BC++
代码实现:
#include<stdio.h>#include<cstring>using namespace std;#pragma comment(linker,"/STACK:102400000,102400000")#define MAX 1005int 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!(最大递增序列和)
- hdu1087Super Jumping! Jumping! Jumping!
- hdu1087Super Jumping! Jumping! Jumping!
- HDU1087Super Jumping! Jumping! Jumping!
- hdu1087 - Super Jumping! Jumping! Jumping! (dp 求递增子序列的最大和)
- hdu 1087 Super Jumping! Jumping! Jumping! (最大递增子序列和)
- HDU 1087 Super Jumping! Jumping! Jumping!(求绝对递增子序列的最大和)
- hdu1087 Super Jumping! Jumping! Jumping! (求最大递增子序列和)
- HDU1087 Super Jumping! Jumping! Jumping! DP求非连续单调递增序列的最大和
- hdu1087——Super Jumping! Jumping! Jumping!(最大递增子序列和)
- 最长上升子序列问题HDU1087Super Jumping! Jumping! Jumping!
- hdoj1087Super Jumping! Jumping! Jumping!(上升序列求最大和)
- hduoj Super Jumping! Jumping! Jumping!【最大上升子序列和】
- hdu1087Super Jumping! Jumping! Jumping!【动态规划】
- HDU 1080-Super Jumping! Jumping! Jumping!(LIS最长上升子序列-最大递增子段和)
- HDU 1087 Super Jumping! Jumping! Jumping![动态规划——最大递增子序列]
- hdu 1087 Super Jumping! Jumping! Jumping!(dp+最长递增序列)
- hdu 1087 Super Jumping! Jumping! Jumping!(最大递增子段和)
- C++中 struct和class的关系
- android service后台服务进程的自启动和保持
- Java中随机产生英文字母
- 互联网天地
- 杭电OJ_DIY_YTW2_1001 A Mathematical Curiosity
- hdu1087Super Jumping! Jumping! Jumping!(最大递增序列和)
- 函数的升级(下)
- 一些漏洞解析
- poj 2965 //枚举
- 无法嵌入互操作类型“MSScriptControl.ScriptControlClass”。请改用适用
- S3C2410 实验九—— DMA控制实验
- 深入浅出 Android核心组件Service(1)
- Android开发8:UI组件TextView,EditText,Button
- POJ 1182(并查集)