洛谷 P1091 合唱队形

洛谷 P1091 合唱队形题解 这是一道比较经典的dp题目,建议初学者昨晚再来看 阅读详情

                                                P1091 合唱队形

题目描述

N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。

合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1<=i<=K)。

你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

输入输出格式

输入格式:

输入文件chorus.in的第一行是一个整数N(2<=N<=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高(厘米)。

输出格式:

输出文件chorus.out包括一行,这一行只包含一个整数,就是最少需要几位同学出列。

输入输出样例

输入样例#1: 
8
186 186 150 200 160 130 197 220
输出样例#1: 
4


说明

对于50%的数据,保证有n<=20;

对于全部的数据,保证有n<=100。

题解:队列是按中间高,两边低的站法,那么其实就是找到i,找到以i结尾的最长上升子序列和以i结尾的反向的最长上升子序列,记录每次两个长度的最大值就是队伍的长度。
AC代码:
#include<bits/stdc++.h>
using namespace std;
#define _for(i,a,b) for(int i=a;i<=b;i++)
const int maxn = 106;
int n,a[maxn],sum1[maxn],sum2[maxn];
int main(int argc, char const *argv[])
{
	cin>>n;
	_for(i,1,n)cin>>a[i];
	_for(i,1,n)sum1[i]=sum2[i]=1;
	_for(i,1,n)
	{
		_for(j,1,i-1)
		{
			if(a[j]<a[i])
			{
				sum1[i]=max(sum1[i],sum1[j]+1);
			}
		}
	}
	for(int i=n;i>=1;i--)
	{
		for(int j=n;j>i;j--)
		{
			if(a[j]<a[i])
			{
				sum2[i]=max(sum2[i],sum2[j]+1);
			}
		}
	}
	int ans = 0;
	//_for(i,1,n)cout<<sum1[i]<<" "<<sum2[i]<<endl;
	_for(i,1,n)ans=max(ans,sum1[i]+sum2[i]-1);
	cout<<n-ans<<endl;
	return 0;
}

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

相关推荐

CentOS7 编译升级GCC至9.3.0

1)下载GCC9.2.0源码并解压 从GCC官方FTP下载地址可以看到GCC最新版本为9.3.0。由于官网下载速度慢,实际上用清华大学的镜像站进行下载,代码如下: wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz #考虑到安装失败的可能性,创建一个临时文件夹来安装GCC...

haha123486的博客 1万+

洛谷P1091 :合唱队形

https://www.luogu.org/problemnew/show/P1091 题目描述 输入输出格式 输入格式: 输入输出样例 输入样例#1: 复制 8 186 186 150 200 160 130 197 220 输出样例#1: 复制 4 双向最长上升子序列, 先从两边求出最长上升子序列, 求两个方向的最长子序列和最大。 #inc...

243

高通8155车机系统里,安卓和QNX是怎么‘打电话’的?聊聊HAB通信框架那些事

本文深入解析了高通8155车机系统中HAB通信框架如何实现安卓与QNX的高效协同。作为异构系统的通信桥梁,HAB通过共享内存和中断信号机制,在多媒体数据传输中展现出零拷贝、硬件加速等优势,成为智能座舱实现实时性与生态丰富性平衡的关键技术。

weixin_42715608的博客 382

洛谷——P1091 合唱队形

不过要注意的是:尽管数列是从第 1 个人开始数的,但是内存循环的 j=0 ,全局变量中 a[0]=0,对于第一个人来说,这个人肯定要入列,这时 a[1]>a[0],b[1]=b[0]+1。然后计算上的人数就是符合要求的,要求的是去除的人数,就用 n-max ,max是统计人数时出现的最大值。,k,他们的身高分别为。你的任务是,已知所有 n 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。n 位同学站成一排,音乐老师要请其中的 n−k 位同学出列,使得剩下的 k 位同学排成合唱队形。

明里灰的博客 1106

机器学习实例(预测房价中位数)(附代码)

1、下载数据: 下载一个压缩文件housing.tgz即可,其包含housing.csv(已经包含书有数据。),用 tax xzf housing.tgz 来解压提取CSV文件。 import os import tarfile import urllib.request DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/" HOUSING_PATH = os.path.join("datasets",

qq_51153436的博客 2758

unity之——解决利用Jenkins在Windows环境下打包unity工程中的场景为apk包,打包打不出来的问题。并且介绍Jenkins从安装到环境配置,调用unity代码的过程(填坑)!!!!!

今天第一次接触Jenkins,比较头疼。网上的Jenkins配置环境相关的资料比较散乱,并且在Windows平台下相关的配置更是少之又少。我在这里讲一下从Jenkins安装到构建工程。打包unity工程的apk包的过程。 1.首先去Jenkins官网下载安装就不说了,安装完成之后在浏览器中输入http://localhost:8080(默认访问地址)进入Jenkins web界面。进行账号的注册...

cgy56191948的博客 2020

洛谷p2004

n位同学站成一排,音乐老师要请其中的n-kn−k位同学出列,使得剩下的kk位同学排成合唱队形。 合唱队形是指这样的一种队形:设kk位同学从左到右依次编号为1,2,1,2,…,k,k,他们的身高分别为t_1,t_2,t1​,t2​,…,t_k,tk​,则他们的身高满足t_1< \cdots <t_i>t_{i+1}>t1​<⋯<ti​>ti+1​>…>t_k(1\le i\le k)>tk​(1≤i≤k)。 你的任...

m0_61949623的博客 351

Unreal使用nDisplay制作裸眼3D(9宫格)

摘要: nDisplay是虚幻引擎的分布式实时渲染技术,可将内容同步输出到多个显示设备(如LED墙、投影仪等),构建沉浸式可视化系统。其核心功能包括:分布式渲染(支持多台设备协同处理高分辨率内容)、空间透视校正(通过追踪观众动态调整画面几何关系)以及虚拟拍摄应用。配置时需设置集群组件(Cluster、Host、Node、Viewport)定义渲染逻辑,空间组件(nDisplayScreen、ViewPoint)确定投影关系。文中以9宫格配置为例,详细演示了从工程创建到影片渲染合成的全流程,最终通过多视口合成

TxNet 608

合唱队形(洛谷-P1091)

题目描述 N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的KK位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K,他们的身高分别为 T1​,T2​,…,TK​, 则他们的身高满足 T1​&lt;...&lt;Ti​&gt;Ti+1​&gt;…&gt;TK​(1≤i≤K)。 你的任务是,已知所有N位同学的身高,计算...

Alex_McAvoy的博客 1496

S速度曲线轨迹规划(普通变频位置闭环控制算法详细介绍+SCL代码)

位置控制用PD控制器,详细内容介绍请查看下面博客文章:PD控制器算法详细解读_RXXW_Dor的博客-优快云博客鉴于积分和微分在工程上的大量应用,这篇博文主要讲解工程上的如何求导f'(x),导数反映的是函数(信号)的变化率,牛顿也是在研究运动的时候提出了微积分的概念,我们知道反映位移变化的快慢程度是速度v(t),反映速度变化快慢程度的物理量是加速度(速度的变化率)。

RXXW_Dor的博客 3886

告别调参难!YOLO超参数优化指南(网格搜索+贝叶斯优化实战)

YOLO超参数优化的本质,不是“试遍所有参数”,而是“用工具化方法,在场景约束内找到最优平衡”——网格搜索稳、贝叶斯优化快,两者结合(先粗搜再精调)是工业场景的最优解。先定范围:基于工业场景(小目标/边缘设备/多类别)缩小参数搜索范围,避免无效探索。先调核心:优先优化数据增强、学习率、输入尺寸,这些参数对精度影响最大。工具赋能:用网格搜索+贝叶斯优化替代人工试错,再用TensorBoard监控,让调参“有据可依”。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 698

洛谷P1091 合唱队形

洛谷P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K他们的身高分别为T_1,T_2,…,T_KT1​,T2​,…,TK​, 则他们的身高满足T1​<...<Ti​>Ti+1​>…>TK​(1≤i≤K)。 你的任务是,...

weixin_30900589的博客 86

【从0到1实战】C# WinForm开发工业级PLC监控系统(完整串口+Modbus RTU/TCP+数据库存储+源码+避坑指南)

做C#工控上位机开发的工程师,尤其是刚入行的新人,最核心的刚需就是开发一套完整的PLC监控系统。这也是工控领域最基础、最核心、应用最广的项目类型——小到单台PLC的设备测控,大到整线的产线监控,本质都是「上位机与PLC通讯,实现数据采集、参数下发、状态监控、数据存储」。碎片化的知识点学了很多,串口会用了、Modbus协议看了、数据库也懂点,但是始终无法把这些知识点串联起来,做出一套能落地的工业级PLC监控系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1559

洛谷P1091 [NOIP 2004 提高组] 合唱队形

洛谷P1091合唱队形问题要求从n位同学中选出k位,使其身高呈现先严格递增后严格递减的单峰结构。解题思路是枚举每个可能的峰值点i,分别计算其左侧的最长上升子序列和右侧的最长下降子序列,确定最少需要移除的同学数量。使用动态规划方法实现,时间复杂度为O(n²),对于n≤100的数据规模完全可行。代码示例展示了如何正反遍历数组计算前后缀子序列,并找出最优解。

yjfyjfyjf54188的博客 1067

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

洛谷P1091 合唱队形【线性DP】

题目链接:P1091 合唱队形 程序说明: f[i]表示 i 左侧的最长上升子序列,g[i]表示 i 右侧的最长上升子序列。合唱队形的总人数为 f[i] + g[i] - 1。总人数减去合唱队形人数的最大值,就是出列的同学的最小值。 代码如下: #include <iostream> using namespace std; const int N = 110; int a[N],...

cutlery1137的博客 247

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: 洛谷 P1020 导弹拦截(动态规划)
下一篇: AtCoder Beginner Contest 090题解
sortmin
博客等级 码龄9年 45粉丝 178原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值