[NOIP2004 提高组] 合唱队形-题解
原题一览
问题描述
N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。
合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK,(1<=i<=K)。
你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。
输入格式
输入的第一行是一个整数N(2<=N<=100),表示同学的总数。第一行有n个整数,用空格分隔,第i个整数Ti(130<=Ti<=230)是第i位同学的身高(厘米)。
输出格式
输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。
样例输入
8
186 186 150 200 160 130 197 220
样例输出
4
思路分析
这明显一看是一道DP的题,思路很简单:
因为是一个山坡形,是由两个最长上升子序列组成的:
1. 从左到右去遍历,寻找最长上升子序列
2. 从右至左去遍历,寻找最长上升子序列
3. 再次循环,去查找最大值
4. 输出
代码时间
有了思路,剩下的就好做了,上代码
#include<bits/stdc++.h>
using namespace std;
int a[105],f1[105],f2[105],n,ans;
int main() {scanf("%d",&n);for(int i = 1; i<=n; i++) scanf("%d",&a[i]);f1[1] = 1;for(int i = 2;i<=n;i++){int MAX=1;for(int j = 1;j<i;j++){if(a[j] < a[i]) MAX = max(MAX,f1[j]+1);}f1[i] = MAX;}/*答案为f1[n]*/ f2[n]=1;for(int i = n-1;i>=1;i--){int MAX=1;for(int j = n;j>i;j--){if(a[j] < a[i]) MAX = max(MAX,f2[j]+1);}f2[i] = MAX;}/*答案为f2[1]*/ int ans=0;for(int i = 1;i<=n;i++){ans=max(ans,f1[i]+f2[i]-1);}printf("%d",n-ans);return 0;
}
[NOIP2004 提高组] 合唱队形-题解相关推荐
- P1091 [NOIP2004 提高组] 合唱队形(动态规划+LIS)
P1091 [NOIP2004 提高组] 合唱队形 Part1:链接: 点我就送屠龙宝刀[doge] Part2:题目 Part3:思路 隔了这么久,屑人再次捡起了他的节操,洗了洗,然后开始续写他的苦 ...
- 洛谷——P1089 [NOIP2004 提高组] 津津的储蓄计划
P1089 [NOIP2004 提高组] 津津的储蓄计划 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为 ...
- 第一届『Citric杯』NOIP提高组模拟赛 题解
[官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...
- [NOIP 2013提高组]转圈游戏 题解
这题在洛谷上是道黄题,即[普及/提高-] 所以虽然是提高组的,但是其实挺简单的. 我们来看下题面: [NOIP 2013]转圈游戏 刚看到题面作为一个蒟蒻感觉它都不配做黄题,但是直到我看清楚了后发现它 ...
- 洛谷P1312 [NOIP2011 提高组] Mayan 游戏 题解
题目描述 Mayan puzzle 是最近流行起来的一个游戏.游戏界面是一个7 行 5×5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指 ...
- 【21NOIP提高组】报数题解
[题目描述] 报数游戏是一个广为流传的休闲小游戏.参加游戏的每个人要按一定顺序轮流报数,但如果下一个报的数是 7 的倍数,或十进制表示中含有数字 7 ,就必须跳过这个数,否则就输掉了游戏. 在一个风和 ...
- noip2010提高组3题题解 by rLq
本题地址http://www.luogu.org/problem/show?pid=1525 关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和 ...
- noi题库c语言 1.5答案,NOIP2004提高组复赛试题答案c语言版
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 bool finish, hash[256], used[27]; int n, stk[27]; string a, b, c; string word ...
- vijos 1106 NOIP2003 提高组 侦探推理 题解
[原题] P1106侦探推理 Accepted 标签: [显示标签] 描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明 ...
最新文章
- 3ds max 改变模型轴的坐标系位置
- URI, URL, URN
- vue-router使用next()跳转到指定路径时会无限循环
- 2021年5月信息系统项目管理师案例分析真题+视频讲解(1)
- Java内存组成GC算法
- OpenCV3.4.5带GPU编译error: #error This file requires compiler and library support for the ISO C++ 2011
- A股开盘:深证区块链50指数涨0.51%,中远海科、广州浪奇涨停
- Angular 响应式表单 patchValue和setValue
- excel两列数据绘制单折线图
- 真人qq秀代码_波士顿动力Spot买家秀
- leetcode第1282题
- ThreadSanitizer检测工具-动态数据竞争检测技术
- 阿甘正传中的人生哲理
- 【干货资料 】简单的交换机光模块故障排查步骤
- 支付宝自动支付程序1.1算法注册机 Code.By.HackWm[D.S.T].
- txt文本的编码格式转换
- 同大取大同小取小口诀图解_不等式取值口诀
- 红米5双清_红米手机双清方法
- Yigo平台中系统自带的五个系统字段值
- Linux----SUID提权复现
热门文章
- 【Linux 内核】调度器 ⑧ ( 进程优先级源码 include\linux\sched\prio.h | 进程分类 | 实时进程 | 普通进程 | 进程优先级数值 | 0 ~ 99 实时进程 )
- 嵌入式Linux开发23——Linux并发与竞争
- rabbitmq使用ssl的问题解决
- 如果只能推荐一本 Python 书,我一定 Pick 它
- 沁恒CH582M开发板-4-OLED显示
- ubuntu16.04+双显卡驱动+cuda9.1+cudnn7.05深度学习环境配置
- TensorFlowLite量化-网上资料摘抄
- vb mysql 语句_VB与数据库编程常用的SQL语句总结
- 机械师F-117 Ubuntu 安装显卡驱动以及CUDA
- oracle 删除用户 ora-00604,ORACLE下用户无法顺利删除问题处理一则-ORA-00604和ORA-00942错误...