hdu1087

HDU 动态规划(46道题目 立即下载

题目大意:下棋比赛,棋子是标有正整数,和“start”和“end”。从起点往终点跳,可以跨越一个甚至多个棋子,但不能后退,且下一个棋子的数值必须大于当前数值,求出从起点到终点的路径中经过的点的数值之和的最大值。也就是求上升子序列中的和的最大值。

思路:动态规划问题,找出递推公式,用数组a[]来存储数据

            dp[i]=max{dp[j]+a[i],a[i]} (当j,<i 且 a[i]>a[j])

            如果a[i]<a[j]就跳过

代码如下:

# include <iostream>
using namespace std;

int a[1000],dp[1000];
int maxsum,n;

int main ()
{
	while(cin>>n,n)
	{
		int i,j;
        for(i=0;i<n;i++)
			cin>>a[i];
		dp[0]=a[0];
		maxsum=dp[0];
		for(i=1;i<n;i++)
		{
			dp[i]=a[i];
			for(j=0;j<i;j++)
			{
				if(a[i]>a[j])//只考虑了升序的情况,如果不满足升序,则相当于自动跳过
				{
					if(dp[j]+a[i]>dp[i])
						dp[i]=dp[j]+a[i];
				}
			}
			if(dp[i]>maxsum)//每次迭代之后,取最大的值维最终的结果
				maxsum=dp[i];
		}
		cout<<maxsum<<endl;
			
	}
	return 0;
}


uds协议之can总线程序升级 uds协议简介 如何利用uds协议升级 升级流程 uds服务类型介绍 阅读详情

相关推荐

电动汽车欧标直流充电标准解析

电动汽车和电动汽车充电市场是动态发展的,欧洲也正在努力部署基础设施,以支持欧洲快速增长和多样化的电动汽车充电需求。

网络安全的研究者、新能源行业的追求者 7615

HDU1087(初识数位dp)

题目链接HDU1087 这道题难在他的思想上,作为入门数位dp的一道基础题并没什么难度,我借此机会写下自己对这题的理解。 动态规划最重要的是掌握他的思想,动态规划的核心思想是把原问题分解成子问题进行求解,也就是分治的思想。 解题思路: 创建数组 a 和数组dp,下标从 1 开始,dp[ i ]表示的是以下标为 i 的元素作为一小段数组的结尾的这段数组的最大值。 比如:dp[ 5 ] = { 1 , 3 , 4 , 2 , 5 } ,dp[ 2 ] 代表以 3 结尾的{1 , 3 }这样一段数组的最大值,因此

HXZ_CREATE的博客 422

CMIP6数据处理及在气候变化、水文、生态等领域中的应用

CMIP6、Biome-BGC、生态、气候变化、气象、水文、气候模式、植被、生态模式、遥感、极端气候、降水、WRF模式、动力降尺度、RCM、大气环流模型、贝叶斯模型、、降尺度

PhyliciaFelicia的博客 1538

HDU-1087(最长上升子序列和)

题意:给你一序列,找出一个和最大的上升子序列, 输出它的和。 思路:动态规划,建立dp数组。因为这题要求是上升子序列,我们需要知道当前子序列末尾的值,所以可使dp[i]表示以i结尾的序列的最大和。这样循环到a[i]时,可通过找到dp数组前i-1项的最大值dp[j],并比较a[j](当前序列最后一项)与当前a[i]的大小。如果a[i] &gt; a[j],则a[i]可加到当前序列。若没找到,则以a...

ImwImW的博客 974

使用openMVS对样例数据进行重建

openMVS根据github上的步骤进行编译。注意,如果没有GPU,用不了CUDA的话,那么需要在openMVS目录下找到CmakeLists.txt文件,把CUDA设置为OFF: SET(OpenMVS_USE_CUDA OFF CACHE BOOL "Enable CUDA library") 可执行的文件生成在openMVS_build/bin/里面,在openMVS_build文件夹下打开终端,按照顺序执行如下命令即可逐步重建。其中,-w 设置的是数据的总路径,-i 后接输入的文件名,-o

YuhsiHu的博客 2883

BUUCTF逆向题Youngter-drive

其实线程一代码我自己也不大理解,看了正确的 flag 后,我自己推出来的是这样:在 couece 中取出字符,然后在 QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm 中找出一样的,取出该字符在 QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm 中的下标,如果取出的字符是大写则 在ASCII中找出【下标 - 38】值对应的字符替换couece中的字符,同理,小写就减 96。

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 1090

hdu1087(dp:解决寻找最大序列值问题。dp[n] = max{dp[n],dp[k] + a[n]}【当a[n]>a[k]时执行】)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 题目大意: 就是给你一个数字序列,让你寻找一个从小到大排序的子序列是所有这样排序的子序列最大值。比如:下图所示中的,前面的第一个数代表着后面有几个数字。故第一例的数字序列就只是:1 3 2.所以其最大的子序列的值为4,这个子序列为:1 3; 故第二例:1 2 3 4,其最大子序列的值为10,子...

zhoupingqi2017的博客 346

基于Cesium移动的天空云

天空中的云朵也算是一种天气气候的效果,它能更加逼真的反映当前的天气状况,可以是白云朵朵,也可以是乌云密布,结合其他天气效果,可以组合形成较为真实的三维可视化场景。

星云数海的博客,一个专注GIS十多年的GISer人。 446

HDU1087——动态规划解决最大递增和

这道题也很适合入门动规,只是最长递增子序列(POJ2533)的变式,原理一样,只是把 求最长序列 改成 求最大和 而已。初始状态为 : dp[i] = a[i] ;  状态转移方程为:dp[i] = max { dp[i] , dp[j]+a[i] } ;题目:Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumpin...

毕业设计选题帮助、项目指导,欢迎打扰 318

SCI一区论文投稿终极技巧:Expert Systems With Applications;Knowledge-Based Systems

投稿计算机1区论文(如KBS、ESWA)的核心技巧包括:1)关键词选择需平衡范围与相关性,避免过细或过泛;2)研究内容聚焦单一核心创新点,避免内容分散;3)必须设计消融实验量化创新点的贡献;4)公开实验代码和数据集,确保可验证性;5)合理使用AI工具仅辅助写作,核心内容需自主完成;6)实验数据必须真实可靠。特别强调1区期刊对创新性和实验严谨性的高要求,需避免常见拒稿原因如内容分散、缺乏验证等。这些策略可提高投稿成功率,但前提是研究本身具有实质性创新。

ZhangJiqun&191cm&85kg 1151

外骨骼机器人(二):自适应振荡器

振荡器是一种数学工具,可以用于实时跟踪、预测类周期信号的频率、相位、幅值等,而助行外骨骼机器人需要自动适应人体的行走频率、幅度,两者相结合,就能使助行外骨骼机器人拥有更舒适、更自然的行走步态。 ......

行者无疆的博客 4262

hdu——1087——Super Jumping! Jumping! Jumping!

地址:http://acm.hdu.edu.cn/showproblem.php?pid=1087 求出最长上升子序列的和 #include #include #include using namespace std; int a[1010],dp[1010]; int main() { int i,j,n,m,k; while(scanf("%d",&

Kamy Shi 856

第五天 Labview数据记录(5.4 EXCEL文件读写)

Excel 文件读写在数据处理、自动化办公、数据分析等领域具有重要的意义。以下是 Excel 文件读写的主要应用场景和意义:1. 数据管理和整理;2. 自动化办公;3. 数据分析和可视化;4. 系统集成;5. 报表生成;6. 教育和培训;7. 实际应用场景。Excel 文件读写的意义在于提高数据处理的效率、减少人工操作、支持自动化办公、促进数据分析和可视化,以及实现系统之间的数据交互。无论是企业、组织还是个人,都可以通过 Excel 文件读写实现数据的高效管理和利用。

weixin_38637405的博客 1261

hdu 1087题解

hdu 1087 题解   题目概要:一串串连续的递增数列中,求最大的数列之和   分析:首先感觉和求最长递增子序列的经典题型相似,所以就考虑用动态规划来解此题。   程序说明:首先将数存在数组v[]中,dp[i]表示的是以第i个数为结尾的数列的最大和。状态转移方程是:dp[i] = max(dp[i], dp[j]+v[i]);其中dp[j]+v[i]表示的是当v[j]   时间

u011504498的专栏 705

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

HDU1087(最大上升序列和)

题目 http://acm.hdu.edu.cn/showproblem.php?pid=1087 Problem Description Nowadays, a kind of chess game called “Super Jumping! Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and k...

gdut18zq的博客 992

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

HDU 1087 dp

http://acm.hdu.edu.cn/showproblem.php?pid=1087 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 ga...

xiji333的博客 134

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

HDU1087

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 package DP; import java.util.*; //状态转移方程 b[i]=max(b[i], b[j]+a[i]); public class HDU1087 { public static void main(String[] args) { S

lhfight的专栏 552

HDU 1087

/* HDU 1087 Super Jumping! Jumping! Jumping!(最大上升子序列和) 比较简单的dp,状态转移方程: sum[i]的初始值为a[i] 当a[i]>a[j]时,sum[i]=max{sum[j]+a[i],sum[i]}(0 最后用max变量记录最大值 */

corlorfulsky的专栏 299

HDU 1087 DP

import java.util.*; public class HDU1087_dp { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()) { int n = sc.nextInt(); if(n==0) break; ...

weixin_42246923的博客 135

HDU1086——You can Solve a Geometry Problem too,HDU1087——Super Jumping! Jumping! Jumping!,HDU1088

用于接收输入的整数,表示数字的个数。来存储输入的数字,通过一个循环读取。来表示线段,包含两个端点的坐标。个数字开始,对于每个数字。,并定义了一个同长度的。,即能得到的最大结果。

u014114223的博客 198

HDU1087 - DP

HDU1087 - DP Super Jumping! Jumping! Jumping! 题目大意: 多组,n等于0时输入结束,每组给你n个数,要你求得一个上升子序列,使得子序列和最大。 数据范围: 1≤n≤1000其它数据不超过int型数据范围。1≤n≤1000其它数据不超过int...

TRDD的博客 158

简单线性dp hdu1087

简单线性dp hdu1087 原题链接http://acm.hdu.edu.cn/showproblem.php?pid=1087 // #include #include #include using namespace std; const int maxn=1e3+10; int a[maxn],dp[maxn]; int main(){ int N; while(~scanf("%d...

weixin_43847643的博客 189

HDU 1087 Super Jumping! Jumping! Jumping!

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 大意:求不连续但必须从左向右单调递增的和的最大值。 思路:习惯了从n-2往前找,卡了很久。这题是从第一个开始,再求第二个,第三个。。。。,因为要得出后面一个结果就先要求出前面数的结果。把每一个数a[i]从1到i的满足a[j] 代码: #include int main() { int

A_Eagle的专栏 1344

HDu1087 Super Jumping! Jumping! Jumping!

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 分析:简单dp;dp[i] = max (dp[i], dp[j] + a[i]) 1 #include<iostream> 2 #include<sstream> 3 #include<cstdio> 4 #include&l...

weixin_30449453的博客 82

hdu 1087 Super Jumping! Jumping! Jumping!

/* hdu 1087 Super Jumping! Jumping! Jumping! 这题的意思就是你跳了一个格子那么你走的下一个格子的权值必须大于前一个格子的权值。 要求最后的权值之和最大。 设a[i](0 那么动态规划的方程可以这么列设f(i)为走到第i个位子时的权值和的最大值。 f(i)=max{f(j)|0a[j]}+a[i]; 那么我们要记录的信息就是f(j)的

\(°ω°)\ 1004

hdu1087(最长上升子序列求和)

http://acm.hdu.edu.cn/showproblem.php?pid=1087 Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13645 Accepted Su

ZhouRush 627
上一篇: poj1458 hdu1159
下一篇: hdu1003 最大子序列的和
fyy607
博客等级 码龄13年 1粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值