合唱队形 动态规划 最长递增子序列

合唱队形-最长递增子序列变种 题目1131:合唱队形 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:315 解决:97 题目描述: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, 阅读详情

1.题目描述

N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK, 则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。
输入描述:
输入的第一行是一个整数N(2 <= N <= 100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130 <= Ti <= 230)是第i位同学的身高(厘米)。
输出描述:
可能包括多组测试数据,对于每组数据,输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。
示例1
输入
8
186 186 150 200 160 130 197 220
输出
4

2.解题思路

动态规划问题,正反两次运用 LIS,即最长递增子序列。
分别找到左侧和右侧可以形成队形的人数,进行加和,由于两次都包含自身,因此还要再减去1

3.代码实现

#include<iostream>
#include<algorithm>
using namespace std;
int dp1[101];
int dp2[101];
int high1[101];
int high2[101];//本例使用了两个数组,在循环中同时进行两个方向的计算
int main() {
	int n;
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> high1[i];
		high2[n - 1 - i] = high1[i];
	}
	dp1[0] = 1;
	dp2[0] = 1;
	int ans1, ans2;
	for (int i = 1; i < n; i++) {
		ans1 = 1; ans2 = 1;
		for (int j = 0; j < i; j++) {
			if (high1[i] > high1[j]) {
				ans1 = max(ans1, dp1[j]+1);
			}
			if (high2[i] > high2[j]) {
				ans2 = max(ans2, dp2[j]+1);
			}
		}
		dp1[i] = ans1; dp2[i] = ans2;
	}
	int result = 1;
	for (int i = 0; i < n; i++) {
		dp1[i] += dp2[n - 1 - i];
		result = max(result, dp1[i]);
	}
	cout << n - result + 1 << endl;
	system("pause");
}
合唱队形(剩下的同学排成合唱队形) N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1 < T2 < ... Ti+1 > … > TK (1 <= i <= K)。 立即下载

相关推荐

全网最全的AItium Designer 16下载资源与安装步骤

Altium Designer 除了全面继承包括Protel 99SE、Protel DXP在内的先前一系列版本的功能和优点外,还增加了许多改进和很多高端功能。该平台拓宽了板级设计的传统界面,全面集成了FPGA设计功能和SOPC设计实现功能,从而允许工程设计人员能将系统设计中的FPGA与PCB设计及嵌入式设计集成在一起。...

WQ的博客 1万+

合唱队排列

合唱队中一共有 k 位同学,编号为 1,2,…要求:存在一位同学编号为 i(1< i <k) ,使得该同学左边严格递增,右边严格递减;老师希望在不改变同学相对位置的前提下,从队伍中选出最少数量的同学,使得剩下的同学排成合唱队形。第二行输入 n 个整数 (0≦ hi ≦10^5) 代表每一位同学的身高。你能帮助老师计算,最少需要出列多少位同学,才能使得剩下的同学排成合唱队形?第一行输入一个整数 n(1 ≦ n ≦ 3000)代表同学数量。输出一个整数,代表最少需要出列的同学数量。

a_jie_2016_05的博客 419

『ISOBUS 入门』第 00 节 导言:ISOBUS 的宏观图景与入门路径

ISOBUS 是由三部分构成的集成系统:两段CAN网络(拖拉机与农具侧)、标准化通信约定及认证流程。其核心在于通过统一协议实现跨品牌设备即插即用。标准体系以ISO 11783为基础,分层涵盖物理层、传输层至应用层,关键功能如虚拟终端(VT)、任务控制器(TC)和文件服务器依赖严格的会话管理与角色分工。实际部署中,总线上传输多种协议报文,故障排查需结合地址声明、多包传输与角色权限分析。学习应从真实报文入手,建立“角色—数据流—功能块”认知链,避免仅学标准或仿真替代实测,方能有效应对复杂现场问题。

linx295的博客 282

【华为机试】HJ24 合唱队

合唱队问题要求从n位同学中选出最少的出列人数,使剩余同学形成先严格递增后严格递减的队形。解题思路是结合最长递增子序列(LIS)和最长递减子序列(LDS)的动态规划方法。具体步骤: 计算LIS数组:记录以每位同学结尾的最长递增序列长度 计算LDS数组:记录以每位同学开头的最长递减序列长度 枚举每个位置作为峰值,计算合唱队形长度(LIS[i] + LDS[i] - 1) 找出最大队形长度,需要出列人数为n - maxLength 示例输入8人,身高186 186 150 200 160 130 197 200,

qq_32019341的博客 716

别再只看读写速度了!聊聊手机闪存eMMC、UFS3.1和SSD背后的功耗与体积玄学

本文深入探讨手机闪存技术eMMC、UFS3.1和SSD在功耗与体积设计上的关键差异。通过对比接口技术、封装工艺和温度管理,揭示移动存储如何在有限空间内平衡性能与能效,为消费者提供选购参考。重点关注UFS3.1的差分信号设计和全双工架构带来的显著优势。

weixin_27061475的博客 447

牛客网之华为机试题:HJ24 合唱队(动态规划)

牛客网之华为机试题:HJ24 合唱队(动态规划)

wojiaxiaohuang2014的博客 379

Cox构建预测模型(5):如何用R语言绘制校准曲线(附全套代码)

这篇文献通过绘制两个模型的DCA曲线来评估模型的临床决策实际需求,一个是列线图模型,包括纳入列线图的全部变量,一个是TNM模型,只纳入TNM分期3个变量。A图是训练集1年、3年、5年患者的总生存期的DCA曲线;B图是训练集1年、3年、5年患者的总生存期的DCA曲线,红色线条代表列线图模型(包括构建模型的10个变量),黄色线条代表TNM模型(仅纳入TNM分期3个变量),两个模型对比,在绘制校准图之前,必须要完成数据的导入、拆分数据集的工作、预测因子的筛选,校准图的绘制是分别在训练集与验证集独立进行的。

qq_37610365的博客 1360

合唱队形

10 合唱队形 描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1<T2<…<Ti,Ti>Ti+1>…>TK(1<=i<=K)T_1 < T_...

weixin_44351043的博客 747

【多元统计分析】均值向量和协方差阵的检验——spss上机实验

均值向量和协方差阵的检验——spss上机实验 #参考书目为《多元统计分析》(第五版)——何晓群.中国人民大学出版社 #如有错误,请指正!谢谢~ #关注公众号搜索同名文章获取数据~ 习题2.3 现选取内蒙古、广西、贵州、云南、西藏、宁夏、新疆、甘肃和青海等9个内陆边远省区。选取人均GDP、第三产业比重、人均消费支出、人口自然增长率及文盲半文盲人口占15岁以上人口的比例等5项能较好的说明各地区社会经济发展水平的指标,验证边远及少数民族聚居区的社会经济发展水平与全国平均水平间有无显著差异。 将输入导入spss

suansuannainaizi的博客 3万+

鸿蒙OS+UniApp文件上传实战:如何解决大文件分片上传的3大坑?

本文深入探讨鸿蒙OS与UniApp结合实现大文件分片上传的实战方案,重点解决分片策略设计、网络中断处理和进度管理三大技术难题。通过鸿蒙分布式特性与UniApp跨平台能力的结合,提供动态分片调整、断点续传和跨设备进度同步等优化方案,显著提升大文件上传成功率和用户体验。

weixin_29250403的博客 474

n个学生分配n个座位,随机分配,要求学号相邻座位不相邻。

70行以内java代码实现,n个学生分配n个座位,随机分配,要求学号相邻座位不相邻。 我是采用二维数组来模拟问题! 本次没考虑先随机选学生,再随机分配座位,而是考虑的按顺序来给学生分配座位,座位是随机分配的,不过这么一来不需要考虑他后边的同学的座位编号相邻或相同了,较为简单。由于采用了while循环,而且是随机分配,如果数据量过小,会导致死循环,即不会终止,因为比方:如果随机数的范围为0,1,2,那么看似是随机分配的,实际上,它可能连续好多次都是同一个数字,导致一直运行中,停不下来。如果数据量大了,反而

Java从入门到入土 1585

把 ABAP 选择屏幕 Selection Screen 打造成可维护的交互面板:常用屏幕元素与动态控制全解析

本文详细介绍了ABAP报表中Selection Screen的设计技巧,包括空行(SKIP)、横线(ULINE)、注释(COMMENT)等基础元素的使用方法,以及如何通过MODIF ID实现动态界面调整。重点讲解了行内布局(BEGIN OF LINE)、按钮(PUSHBUTTON)和区块(BLOCK)等高级功能,帮助开发者将选择屏幕从"能用"提升到"好用、易扩展、可维护"的水平。文章还分享了项目实践中的命名规范和分组策略,特别适合需要优化ABAP报表用户体验的开发人员

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 331

动态规划之合唱队形问题(最长递增子序列变形)

题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。合唱队形定义:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti, Ti > Ti+1 > … > TK (1 <= i <= K)。 要求:已知所有N位同学的身高,计算最少需要几位同学出

芳草源的博客 7246

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

efm32 入门.pdf

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

codevs合唱队形 动态规划求最长递增子序列

题目描述 Description     N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。     合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,  则他们的身高满足T1Ti+1>…>TK(1     你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的

glaugagefer的专栏 439

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

合唱队形【动态规划】【最长递增子序列】

描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK, 则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。 输入描述:

cold的博客 514

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

合唱队形java_动态规划之合唱队形问题(最长递增子序列变形)

题目描述N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。合唱队形定义:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti, Ti > Ti+1 > … > TK (1 <= i <= K)。要求:已知所有...

weixin_33945547的博客 316

合唱队形(递增再递减的最长子序列)

题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK, 则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。 问

X丶 的博客 968

华为笔试题合唱队

题目描述 计算最少出列多少位同学,使得剩下的同学排成合唱队形 说明: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,则他们的身高满足存在i(1<=i<=K)使得T1<T2<......<Ti-1<...

freeygh的博客 482

九度OJ 题目1131:合唱队形

 一.题目描述: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。  合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,  则他们的身高满足T1 Ti+1 > … > TK (1  你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得

lhyer的专栏 2105

动态规划-最长递增子序列-合唱队形

动态规划-最长递增子序列-合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<… .<Ti 》Ti+1>…>TK(1<=i<=K)。 你的任务是,已知所有N位同学的身高...

jindayue的博客 490

合唱队形-动态规划

链接:https://www.nowcoder.com/questionTerminal/cf209ca9ac994015b8caf5bf2cae5c98?answerType=1&f=discussion 来源:牛客网 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK, 则他们的身高满足T1 < T2 < …

qq_44985985的博客 341

九度OJ 1131 合唱队形 -- 动态规划(最长递增子序列)

题目地址:http://ac.jobdu.com/problem.php?pid=1131 题目描述: N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK, 则他们的身高满足T1 Ti+1 > … > T

liushaobo的专栏 3692

合唱队,对n个人挑出n-k个人,剩下k个人排成合唱队

题目描述:        华为机试题--       计算最少出列多少位同学,使得剩下的同学排成合唱队形       说明:       N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。  合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK,   则他们的身高满足存在i(1Ti+

qq_34485658的博客 1420
上一篇: 胜利大逃亡 hdoj 1253 BFS
下一篇: poj 2386 Lake Counting (深度优先搜索基础)
RPG_Zero
博客等级 码龄8年 77粉丝 181原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值