合唱队形(NOIP原题)

洛谷——P1091 [NOIP2004 提高组] 合唱队形 本题为一道线性DP练习题,难度为普及/提高− 阅读详情
/*
【2005年提高组3】合唱队形
http://mail.bashu.cn:8080/JudgeOnline/showproblem?problem_id=1001
Time Limit:1000MS  Memory Limit:65536K
Total Submit:447 Accepted:205 
Case Time Limit:500MS 

Description 

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


Input 

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


Output 

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

Sample Input 


8
186 186 150 200 160 130 197 220


Sample Output 


4

Hint 

数据规模 
对于50%的数据,保证有n<=20; 
对于全部的数据,保证有n<=100。 


Source 

NOIP2004

*/
#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

#define MAX 101

int main(void)
{
  
int a[MAX]={0},b[MAX]={0},c[MAX]={0} ;
  
int i,j,k,n,max;
  scanf(
"%d",&n) ;
  
for(i=1 ; i<= n ; i++)
  scanf(
"%d",&c[i]);
  
  
for(i=1 ; i<= n ; i++)
  {
    
for(j=1,k=0 ; j< i ; j++)
    
if (c[j] < c[i] && a[j] > k)
    k 
= a[j] ;
    a[i] 
= k+1 ;
  }
  
  
for(i=n ; i>= 1 ; i--)
  {
     
for(j=n,k=0; j> i ; j--)  
     
if ( c[i] > c[j] && b[j] > k)
     k 
= b[j] ;
     b[i] 
= k+1 ;
  }
  max 
= 0 ;
  
for(i=1 ; i<= n; i++)
  
if ( (k=a[i] + b[i]) > max )
  max 
= k ;
  
  printf(
"%d ",n-max+1);
  
return 0 ;
}
 
【题解】「NOIP2004」合唱队形(DP,最长不下降子序列) 题面 【题目描述】 NNN位同学站成一排,音乐老师要请其中的(N−K)(N-K)(N−K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K1,2…,K1,2…,K,他们的身高分别为T1,T2,…,TKT_1,T_2,…,T_KT1​,T2​,…,TK​, 则他们的身高满足T1<...<Ti>Ti+1>…... 阅读详情

相关推荐

[NOIP2004]合唱队形【动态规划】

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

Tag_king的专栏 786

74-合唱队形(蓝桥杯)

博主备考练习题

月亮被咬碎成星星的博客 328

算法面试八股文『 基础知识篇 』

个人整理的算法面试基础知识八股文,内容较详细。

SG_teresa's blog 4336

华为笔试-超简单看懂合唱队问题

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

feengg的博客 4800

保姆级教程 | MS构建三层石墨后转成LAMMPS的data文件

喜欢的话记得一键三连~

baguette的博客 2951

OsgEarth实战:飞机模型动态轨迹与雷达扫描效果实现详解

本文详细介绍了如何使用OsgEarth实现飞机模型动态轨迹与雷达扫描效果。通过实战案例,讲解了模型加载、路径规划、动态轨迹绘制、飞行姿态计算以及雷达扫描效果的实现方法,并提供了性能优化技巧,帮助开发者高效完成三维可视化项目开发。

weixin_29214199的博客 303

C/C++百题打卡[5/100]——合唱队形

关键字:C/C++算法学习、百题打卡[5/100]——合唱队形【中等】⭐️⭐️⭐️⭐️、数组、动态规划

Wang_Dou_Dou_的博客 3439

FPGA 核脉冲梯形成型 Verilog 实现:从 MATLAB 到 50MHz 采样率部署

本文详细解析了FPGA实现核脉冲梯形成型的完整流程,从MATLAB仿真到50MHz采样率的Verilog硬件部署。重点探讨了梯形成型算法对负指数信号的优化处理,包括定点数量化、流水线架构设计及资源优化技巧,为核辐射探测与高能物理实验提供高效解决方案。

weixin_30920513的博客 388

九度OJ 题目1131:合唱队形

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

lhyer的专栏 2105

详解Σ-Δ型ADC拓扑结构的基本原理

现在,总环路滤波器的H(f)具有更大的滚降,Mod 2型的噪声传递函数具有40 dB/十倍频程的上升速率。同样,当正弦波输入为负满量程时,+1和–1之间的转换会减少,输出以–1为主。噪声传递函数是一个高通滤波器函数,提供噪声整形,在DC附近的较低频率,对量化噪声有很强的抑制。H(f)是环路滤波器的函数,定义噪声和信号的传递函数。Σ-Δ型ADC的噪底由热噪声决定,而不受量化噪声的限制。量化噪声为量化器的输入与输出之差。图5. Mod 1 Σ-Δ环路的线性模型(b),包括方程、滤波器、信号和噪声传递函数图。

qq_43416206的博客 1809

得物APP破解

本文介绍了得物App(版本4.74.5)的逆向破解过程,重点分析了绕过强制更新、抓包技巧以及破解newSign参数的详细方法。首先通过断网再联网的方式绕过强制更新,然后使用SocksDroid进行抓包分析,发现首页推荐接口需要newSign参数。通过反编译定位到RequestUtils.c方法,利用Frida进行Hook验证,最终解析出newSign的生成逻辑:将请求参数加入固定字段后排序拼接,再进行MD5加密生成签名。文中提供了完整的Hook脚本和签名算法分析,仅供学习移动安全技术参考。

m0_74653634的博客 3474

NOIP2004合唱队列(提高组T3)————单调队列,动态规划(最长上升序列,最长下降序列)

题解:本题主要考查单调队列,动态规划(最长上升序列,最长下降序列)。这个序列是一个中间高,两头底的序列,先解决从T1到Ti这一段单调递增的序列,再解决Ti到TK这一段单调递减的序列(注意数值的更新)。 代码如下: #include&lt;iostream&gt; #include&lt;algorithm&gt; using namespace std; int q(int x); int n,i...

wly1127的博客 559

AI训练加速30%!用numactl玩转多显卡绑核的隐藏技巧

本文深入探讨了如何利用Linux系统的numactl工具,通过精确的NUMA绑核策略优化多GPU AI训练性能。文章详细解析了NUMA架构对性能的影响,提供了从拓扑探查、命令实战到多卡脚本化部署的完整指南,并分享了性能验证与常见陷阱,帮助开发者实现高达30%的训练加速。

web99的专栏 448

P1091 [NOIP2004 提高组] 合唱队形 题解

P1091 [NOIP2004 提高组] 合唱队形 题解

yaosichengalpha的博客 965

RH850从0搭建Autosar开发环境【2X】- Davinci Configurator之EcuC模块配置详解(上)

RH850从0搭建Autosar开发环境【2X】- Davinci Configurator之EcuC模块配置详解(上)

weixin_42412049的博客 1529

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

[NOIP2004 提高组] 合唱队形-题解

有了思路,剩下的就好做了,上代码。

m0_67262244的博客 700

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[NOIP2004 提高组]合唱队形 题目详解

𝑛 位同学站成一排,音乐老师要请其中的 𝑛−𝑘 位同学出列,使得剩下的 𝑘 位同学排成合唱队形。合唱队形是指这样的一种队形:设 𝑘 位同学从左到右依次编号为 1,2,1,2, … ,𝑘,他们的身高分别为 𝑡1,𝑡2,t1​,t2​, … ,𝑡𝑘,则他们的身高满足 𝑡1 … >𝑡𝑘(1≤𝑖≤𝑘)。你的任务是,已知所有 𝑛 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

kamlam96的博客 1458

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【NOIP】合唱队形

【NOIP】合唱队形 题目 题目描述 N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K,他们的身高分别为T_1,T_2,…,T_KT 1​ ,T 2​ ,…,T ​ , 则他们的身高满足T_1<…<T_i>T_{i+1}>…>T_K​ (1≤i...

A793488316的博客 1702

【动态规划、dp】P1091 [NOIP2004 提高组] 合唱队形 题解

动态规划解决NOIP题目

guozhetao的博客 1155

[NOIP2004 提高组] 合唱队形(含代码)

n位同学站成一排,音乐老师要请其中的n−k位同学出列,使得剩下的k位同学排成合唱队形。合唱队形是指这样的一种队形:设k位同学从左到右依次编号为12k,他们的身高分别为t1​t2​tk​,则他们的身高满足t1​⋯ti​ti1​tk​1≤i≤k。你的任务是,已知所有n位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

华仔的博客 659

【NOIP提高组】合唱队形

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

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 8602

合唱队形

§缘 [NOIP2004]合唱队形 题目描述:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。

C20191618的博客 1593

P1091 [NOIP 2004 提高组] 合唱队形 (动态规划,最长上升子序列,最长下降子序列)

洛谷p1091 题解

2403_87530627的博客 994

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

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

yjfyjfyjf54188的博客 1067

信息学奥赛一本通 1264:【例9.8】合唱队形 | 1837:【04NOIP提高组】合唱队形 | OpenJudge 百练 2711 | 洛谷 P1091 [NOIP2004 提高组] 合唱队形

【题目链接】 ybt 1264:【例9.8】合唱队形 ybt 1837:【04NOIP提高组】合唱队形 OpenJudge 百练 2711:合唱队形 洛谷 P1091 [NOIP2004 提高组] 合唱队形 【题目考点】 1. 动态规划:线性动规 求最长上升子序列 求最长下降子序列 【解题思路】 合唱队形中,站在C位(最中间)的人应该是最高的,设选择的人为iii。这个人左侧的人的身高应该是一个上升序列,右侧的人的身高应该是一个下降序列,左右侧人的身高都不应该高于tit_iti​。为了使出列的人最少,第i

君义NOIP的博客 3730
上一篇: 采药问题(NOIP竞赛原题)
下一篇: 排队打水问题
oopos
博客等级 码龄19年 21粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值