动态规划练习一 13:最大上升子序列和

MOOC程序设计与算法练习题——动态规划#2757最长上升子序列 描述 一个数的序列bi,当b1 < b2 < … < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, …, aN),我们可以得到一些上升的子序列(ai1, ai2, …, aiK),这里1 <= i1 < i2 < … < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1,... 阅读详情
描述

一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ...,aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中序列和最大为18,为子序列(1, 3, 5, 9)的和.

你的任务,就是对于给定的序列,求出最大上升子序列和。注意,最长的上升子序列的和不一定是最大的,比如序列(100, 1, 2, 3)的最大上升子序列和为100,而最长上升子序列为(1, 2, 3)

输入
输入的第一行是序列的长度N (1 <= N <= 1000)。第二行给出序列中的N个整数,这些整数的取值范围都在0到10000(可能重复)。
输出
最大上升子序列和
样例输入
7
1 7 3 5 9 4 8
样例输出
18

思路: 状态变量 b, 第 i 的状态 有两个条件约束 , 1.是第i 个数 比前 i-1个 数字大,2是寻找 前 i-1 个数字 的最大状态,。那么 i 状态就是 符合条件一的 最大的状态加 上 第 i 个数字 的大小 。


代码:
// 最大上升子序列和 
#if  0
#include<bits/stdc++.h>

using namespace std;

int main()

{
	freopen("in.txt","r",stdin) ;
	int a[1002] , n ;
	
	cin >> n ;
	for(int i = 1 ;i <= n; i++) 
	  cin >> a[i] ;
	  
	  int b[1002] = {0} ,max = 0 ,maxlen = a[1];
	   b[1] = a[1]  ;
	   
	   for(int i = 2 ;i <= n ;i++) 
	   {         max=0;
	   	 for (int j = 1 ; j < i ;j++)
	   	 {         
	   	 	if( a[i] >a[j] && max < b[j] ) 
				max = b[j] ;
				
			}
	   	b[i] = max + a[i] ;
	   	 if(maxlen < b[i]) maxlen = b[i] ;
	   }
	  
	  cout << maxlen <<endl;
	
	
}


#endif


上升子序列 Submit Statistic Problem Description 一个只包含非负整数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列{a1, a2, ...,aN},我们可以得到一些上升的子序列{ai1, ai2, ..., aiK},这里1 ≤ i1 < i2 <...< iK ≤ N。例如:对于序列{1, 7, 3, 5 阅读详情

相关推荐

最大连续子序列和:动态规划经典题目

【题目】  给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1  【注】:为方便起见,如果所有整数均为负数,则最大子序列和为0。 解决这样一个问题是一个很有趣的过程,我们可以尝试着从复杂度比较高的算法一步一步地推出复杂度较低的算法。 【算法1】  时间复杂度:O(N^3)

samjustin的博客 1万+

动态规划——最长上升子序列问题

问题描述: 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。 比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3,

weixin_41174502的博客 2939

VS2019配置Qt5.14.2开发环境全流程(含MSVC2017 64-bit选择指南)

本文详细介绍了在VS2019中配置Qt5.14.2开发环境的完整流程,特别针对MSVC2017 64-bit编译器的选择提供了专业建议。从环境准备、Qt安装配置到VS2019集成设置,逐步指导开发者完成开发环境的搭建,并提供了常见问题的解决方案和高级优化技巧,帮助开发者高效进行Qt开发。

weixin_29243279的博客 514

动态规划:最长上升子序列

<br /> <br />问题描述<br />一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8).<br

Studing In Depth 4万+

【RK3588开发记录】超详细的RK3588修改debug串口波特率为115200

修改RK3588的debug串口为115200

Crazydrams的博客 4805

CentOS 7下Oracle 11G RAC静默安装避坑指南:从网络规划到共享存储配置全流程

本文详细介绍了在CentOS 7环境下进行Oracle 11G RAC静默安装的全流程,包括网络规划、共享存储配置和系统参数调优等关键步骤。特别针对静默安装过程中的常见问题提供了实用的避坑指南和优化建议,帮助技术人员高效完成企业级数据库部署。

weixin_29234509的博客 125

DP算法之最长上升子序列

1.问题描述 描述 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8)...

小白菜的博客 1617

神经符号AI架构解析:如何通过V&V提升AI系统可信性

在人工智能领域,深度学习模型因其强大的模式识别能力而广泛应用,但其内部决策过程往往如同“黑盒”,难以追溯和解释,这给系统验证与确认带来了巨大挑战。验证与确认是确保复杂软件系统安全、可靠、符合预期的基石,其中验证关注“是否正确地构建了产品”,确认则关注“是否构建了正确的产品”。神经符号人工智能作为一种新兴范式,通过融合符号逻辑的透明推理与深度学习的强大感知,为解决这一难题提供了关键技术路径。它使得AI系统既能从数据中学习复杂模式,又能依据可形式化检验的规则进行逻辑推理,从而在自动驾驶、医疗诊断等高可靠性应用场

weixin_28681379的博客 358

动态规划练习一 13:最大上升子序列和

描述 一个数的序列bi,当b1 你的任务,就是对于给定的序列,求出最大上升子序列和。注意,最长的上升子序列的和不一定是最大的,比如序列(100, 1, 2, 3)的最大上升子序列和为100,而最长上升子序列为(1, 2, 3) 输入 输入的第一行是序列的长度N (1 输出 最大上升子序列和 样例输入 7 1 7 3 5 9 4 8 样例输出 18

G_Meteor的博客 614

部署资源管理系统chemx

资源管理系统的部署教程

weixin_40784215的博客 822

关于mos管的压降问题(项目遇到问题总结)

在研发过程中没有出现问题的板子,到了小批时竟出现雷达一直在触发???找了大几天,没有头绪。心中疑惑颇多,加上老板催促,自考等原因,真是压力山大。4月份自考,只有差不多一个月时间了吧,没有什么大的收获,反而在查找硬件问题的过程中,发现了一个自己忽视的一个问题,就是关于Mos管的压降问题。 备考的过程崎岖不平,工作又问题多多,孰轻孰重,如何取舍?从心理来说,不想取舍什么,只是有所得就可以,过不了就过不了呗,已经毕业十五年了,没这个本科文凭不也过来了吗?只是代表了自己在这一段时间的思考,自己兴趣吧,没什么大不了

guangod的博客 2万+

动态规划求解最大连续子序列和

#!/usr/bin/env python # -*- coding:utf-8 -*- # 求最大连续子序列和 """ 【题目】 给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj }, 其中 1 <= i <= j <= k。最大连续子序列是所有连续子序中元素和最大的一个, 例如给定序列{ -2, 11, -...

u011865919的博客 2873

FPGA/IC 秋招笔试/面试题总结

文章目录一、FPGA内部资源1. 什么是FPGA2.FPGA内部资源二、同步时钟、同步/异步电路1.同步时钟2.同步/异步电路三、同步复位/异步复位1.同步复位2. 异步复位3. 异步复位同步释放四、同步FIFO/异步FIFO1.同步FIFO2.异步FIFO五、FIFO最小深度计算1.FIFO最小深度2.示例分析六、逻辑电平1.TTL电平标准2.LVTTL电平标准3.CMOS电平标准4.LVCOMS电平标准5.RS2326.RS4857.ECL、PECL、LVPECL8.LVDS9.CML10.GTL11

Crazzy_M的博客 4万+

动态规划dp经典题目:最大连续子序列和

给定k个整数的序列{N1,N2,...,Nk },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= k。最大连续子序列是所有连续子序中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{11,-4,13},最大连续子序列和即为20。

Hoaresky1998的博客 7069

【YOLOv11】014、YOLOv11模型导出:PyTorch到ONNX格式转换与优化

摘要:本文详细介绍了如何将PyTorch训练的YOLOv11模型高效转换为ONNX格式。重点包括:分离模型特征提取与后处理、设置动态维度、优化ONNX算子、验证转换正确性等关键步骤。作者分享了实际项目中的经验教训,如版本对齐、算子兼容性处理、后处理分离等实用技巧,并推荐使用onnx-simplifier工具优化模型。文章强调模型转换是一个需要反复调试的过程,建议保留转换记录形成知识库,以提高部署效率并避免常见错误。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 306

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

动态规划-最大连续子序列和

动态规划-最大连续子序列和 问题描述 给定一个数字序列A1,A2,...,An,求i,j(1&amp;lt;=i&amp;lt;=j&amp;lt;=n),使得Ai+...Aj最大,输出这个最大和。 样例 -2 11 -4 13 -5 -2 显然 11 + (-4) + 13 = 20 为和最大的选取情况,因此最大和为20 下面介绍动态规划的做法,复杂度为O(n),读者会发现其实左端点的枚举是没有必要的...

肖睿的博客 3128

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C++最长上升子序列

现有数列a1,a2,a3……aN。在其中找到严格递增序列ai1,ai2,ai3,……aiK(1 <= i1 < i2 < i3 < …… < iK <= N),请找出序列a的最长上升子序列的长度,既K的最大值。

SkeletonKing233的博客 4369

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

动态规划法-最大连续子序列和问题

我们有一个数字序列,例如 1, -2, 3, 4, -10, 6。我们的目标是找出这个序列中连续数字相加得到的最大和。

qq_52291558的博客 1567

动态规划专题1——最大连续子序列和

一、问题:a[] = {0, -2, 11, -4, 13, -5,-2},求最大连续子序列和。 二、问题分析:题目蕴涵着贪心的思想。就是选取元素的时候第一个和最后一个必须是正数,这样得到的子序列和才会是最大的。但是一味的贪心无法得到正确的结果,贪心只会求得所有正数的和,题目求的是最优解并且子问题独立,很自然而然的想到动态规划。那么这样的思想怎么表达出来呢? 首先,如果前面的和加上当前选取的元素没...

卖萌鸡尾酒的博客 1839

常见动态规划模型【最大子段和、LIS、LCS】

最大子段和 例1:下面数列的最大子段和是多少 -2,11,-4,13,-5,-2 概念:给定一个由数字组成的序列,其中连续的一段子序列称为一个子段,子段中的所有数之和称为子段和,这里只考虑非空子段,即至少包含一个元素的子段。 暴力方法 1.最暴力的算法,就是枚举两个端点,遍历所选出的子段求和。枚举端点复杂度为O(n2)O(n^2)O(n2),求一个子段的和,复杂度为O(n)O(n)O(n),...

小二笙的博客 1176

最大连续子序列和——动态规划

题目概述: 给定一个数字序列A1,A2,...,An,求i,j(1≤i≤j≤n),使得Ai+,...,+Aj最大,输出这个最大和。 样例: -2 11 -4 13 -5 -2 显然11+(-4)+3=20为和最大的选值情况,因此最大和为20 思路: 1、因为dp[i]要求是必须以A[i]结尾的连续序列,那么只有两种情况: ①这个最大和的连续序列只有一个元素,即...

一把把把把住了! 2807

算法6、一维动态规划-单序列问题(最大连续和/最长子序列)

在前一题的基础上,再根据maxSub遍历dp,就能找到所有满足最大和maxSub的子序列结尾元素索引j, 还需要知道这些子序列的首元素i,那么额外增加一个数组start[j]记录以j索引元素为结尾的最大连续子序列的首元素索引, 也利用分治,那么start[j]的值,当a[j]+dp[j-1] < a[j],首元素是该元素本身,否则,首元素就是以前一个元素为结尾的最大连续子序列的首元素,初始化start[1] = a[1].比如-2, 11, -4, 13,-5的序列,要求以13结尾的最大连续子序列和,

topsylily的博客 936

【动态规划】PAT 甲级 1007 动态规划、牛客网 最大连续子序列、牛客 最大上升子序列

1007 Maximum Subsequence Sum (25 分) Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to be { N​i​​, N​i+1​​, ..., N​j​​ } where 1≤i≤j≤K. The Maximum Su...

努力努力再努力0.0的博客 293

动态规划--(递推2(最长上升子序列,格子染色,斐波那切数列,奇数塔问题,最长子段和))

这样说还是有点抽象,举个例子,比如我要求前i个数的最长上升子序列,那么小于a[i]的数有a[v1],a[v2],a[v3]这三个,而dp[i]就是dp[v1]+1,dp[v2]+1,dp[v3]+1,dp[i](因为前三个的最大值可能小于dp[i],所以也要加上,但是这是不可能的事,不过为了后面的统一还是加上)的最大值,所以状态转移方程是dp[i]=max(dp[i],dp[k]+1)(k为小于i大于0的自然数)。的时候,我们称这个序列是上升的。你的任务,就是对于给定的序列,求出最长上升子序列的长度。

longxuan01的博客 1195
上一篇: 动态规划练习一 05:吃糖果
下一篇: 动态规划练习一 14:怪盗基德的滑翔翼
Joined
博客等级 码龄10年 19粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值