NOIP 真题解析:[NOIP 2004 提高组-T3] 合唱队形

发布时间:2026/7/11 23:03:37

NOIP 真题解析:[NOIP 2004 提高组-T3] 合唱队形
[NOIP 2004 提高组-T3] 合唱队形摘要本题要求从一列同学中选出部分人排成先严格递增后严格递减的合唱队形求最少需要出列的同学人数。核心思路为对每个位置计算其左侧和右侧的最长上升子序列长度以d p l [ i ] d p r [ i ] − 1 dpl[i] dpr[i] - 1dpl[i]dpr[i]−1表示以i ii为峰点时最多可留下的人数最终结果为总人数n nn减去该最大值。题目描述n nn位同学站成一排音乐老师要请其中的n − k n-kn−k位同学出列使得剩下的k kk位同学排成合唱队形。合唱队形是指这样的一种队形设k kk位同学从左到右依次编号为1 , 2 , 1,2,1,2,…, k ,k,k他们的身高分别为t 1 , t 2 , t_1,t_2,t1​,t2​,…, t k ,t_k,tk​则他们的身高满足t 1 ⋯ t i t i 1 t_1 \cdots t_it_{i1}t1​⋯ti​ti1​… t k ( 1 ≤ i ≤ k ) t_k(1\le i\le k)tk​(1≤i≤k)。你的任务是已知所有n nn位同学的身高计算最少需要几位同学出列可以使得剩下的同学排成合唱队形。输入格式共二行。第一行是一个整数n nn2 ≤ n ≤ 100 2\le n\le1002≤n≤100表示同学的总数。第二行有n nn个整数用空格分隔第i ii个整数t i t_iti​130 ≤ t i ≤ 230 130\le t_i\le230130≤ti​≤230是第i ii位同学的身高厘米。输出格式一个整数最少需要几位同学出列。输入输出样例 #1输入 #18 186 186 150 200 160 130 197 220输出 #14说明/提示对于50 % 50\%50%的数据保证有n ≤ 20 n \le 20n≤20。对于全部的数据保证有n ≤ 100 n \le 100n≤100。思路要点本题要求一个最合适的 a[i]使得 [a[i] 左边 a[i] 的数的个数) (a[i] 右边 a[i] 的数个数) ] 最小。反过来想其实就是分别求 a[i] 左边从左往右的最长上升子序列设表示为 dpl[i]与 a[i] 右边从右往左的最长上升子序列设表示为 dpr[i]之和取其最大时的 a[i] 为峰点即可。此时留下来的人数为 dpl[i] dpr[i] - 1用总人数减去最多能留下来的人数即为所求最少出列同学人数。参考代码#includebits/stdc.husingnamespacestd;intn,a[105],dpl[105],dpr[105],maxn,ans;intmain(){cinn;for(inti1;in;i){cina[i];// 从左往右求一遍截至 a[i] 的最长上升子序列dpl[i]1;// 初始化 dpl[i] 为 1 (仅含 a[i] 的情况)for(intj1;ji;j){// 枚举 a[i] 左边的元素if(a[j]a[i]){dpl[i]max(dpl[i],dpl[j]1);}}}for(intin;i1;i--){// 从右往左求一遍截至 a[i] 的最长上升子序列dpr[i]1;// 初始化 dpr[i] 为 1 (仅含 a[i] 的情况)for(intjn;ji;j--){// 枚举 a[i] 右边的元素if(a[j]a[i]){dpr[i]max(dpr[i],dpr[j]1);}}// 若选 a[i] 为峰点能留下来的人数为 dpl[i] dpr[i] - 1maxnmax(maxn,dpl[i]dpr[i]-1);}ansn-maxn;// 最少出列学生数 总人数 - 最多留下的人数coutans;return0;}

相关新闻

5G核心网SBA架构实战:基于Open5GS搭建3节点测试环境

5G核心网SBA架构实战:基于Open5GS搭建3节点测试环境

2026/7/11 23:03:37

5G核心网SBA架构实战:基于Open5GS搭建3节点测试环境引言:为什么需要动手搭建5G核心网测试环境?在5G技术快速发展的今天,服务化架构(SBA)已成为5G核心网的标准设计范式。与传统的4G EPC架构不同,SBA将网络功能拆分为独立…

Codex Skills安装系统:Web驱动的技能生命周期管理平台

Codex Skills安装系统:Web驱动的技能生命周期管理平台

2026/7/11 23:03:37

1. 项目概述:这不是一个“插件”,而是一套可复用的自动化能力交付系统你有没有遇到过这样的场景:在 Codex 里反复写同一段代码来调用 GitHub API 获取 PR 列表?或者每次都要手动拼接 OpenAPI Schema 去生成接口测试用例&#xff1…

Windrose专用服务器搭建原理与实战指南

Windrose专用服务器搭建原理与实战指南

2026/7/11 23:03:37

1. 项目概述:为什么Windrose联机服务器不是“装个软件点一下就完事”?Windrose《风启之旅》的联机服务器搭建,表面看是“下载、解压、双击运行”的三步操作,但实际踩坑率远超90%——我帮朋友远程调试过23台不同配置的机器&#xf…

魔兽争霸III免费增强工具:5分钟提升游戏体验完整指南

魔兽争霸III免费增强工具:5分钟提升游戏体验完整指南

2026/7/12 0:33:43

魔兽争霸III免费增强工具:5分钟提升游戏体验完整指南 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 魔兽争霸III辅助工具是一款专为经典游…

Unity NGO网络同步:NetworkVariable与RPC的设计哲学与实战应用

Unity NGO网络同步:NetworkVariable与RPC的设计哲学与实战应用

2026/7/12 0:33:43

1. 项目概述:理解NGO中的两大通信基石在Unity Netcode for GameObjects(NGO)的世界里,构建一个稳定、高效的多人游戏,本质上是在解决一个核心问题:如何让所有玩家客户端看到一个尽可能一致的游戏世界。这背…

别被忽悠了!这10行PHP代码,就能搞定一个简单数据库

别被忽悠了!这10行PHP代码,就能搞定一个简单数据库

2026/7/12 0:33:43

如何使用php和创建简单的数据库有一种数据库引擎, 它属于轻量级, 跟别的关系型数据库引擎去相比, 它不需要那种独立的服务器进程, 而是把数据库嵌入到应用程序当中。PHP是一种流行的服务器端脚本语言 , 它能够进行集成 , 借着PHP的扩展模块 , 我们能够轻松地运用PHP去创建并且操…

Python的range函数,你还在傻傻用?别再被它坑惨了

Python的range函数,你还在傻傻用?别再被它坑惨了

2026/7/12 0:33:43

range () 函数:从入门到精通于编程的世界当中, range()函数属于一个虽小巧然而强大之工具, 其于循环控制、数值序列生成等诸多场景之处频繁现身。此篇文章会从全方位、多层次层面去解读range()函数, 借助丰富案例、展开对比分析, 助力您熟练掌握这一函数, 以使您的编…

别被忽悠了!一个简单数据库php代码,就能让网站活起来

别被忽悠了!一个简单数据库php代码,就能让网站活起来

2026/7/12 0:33:43

就那些熟悉做网站的人而言, 若想把网站做成动态的, 必然得有数据库加以支持, 借助特定的脚本去跟数据库相连, 接着从数据库里提取资料, 再往数据库里添加资料, 还要对资料库进行删除资料的操作等。在此, 我借由一个实例来讲明怎样运用php去连接到数据库的。我打算着手去构建一个…

告别会议分心焦虑:用TMSpeech打造你的专属实时语音字幕助手

告别会议分心焦虑:用TMSpeech打造你的专属实时语音字幕助手

2026/7/12 0:23:42

告别会议分心焦虑:用TMSpeech打造你的专属实时语音字幕助手 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 你是否曾在重要会议上因分心而错过关键信息?是否因需要同时听讲和记录而手忙脚乱&…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/12 0:03:42

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/12 0:03:42

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/12 0:03:42

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/12 0:03:42

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…