原题一览

问题描述

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 提高组] 合唱队形-题解相关推荐

  1. P1091 [NOIP2004 提高组] 合唱队形(动态规划+LIS)

    P1091 [NOIP2004 提高组] 合唱队形 Part1:链接: 点我就送屠龙宝刀[doge] Part2:题目 Part3:思路 隔了这么久,屑人再次捡起了他的节操,洗了洗,然后开始续写他的苦 ...

  2. 洛谷——P1089 [NOIP2004 提高组] 津津的储蓄计划

    P1089 [NOIP2004 提高组] 津津的储蓄计划 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为 ...

  3. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  4. [NOIP 2013提高组]转圈游戏 题解

    这题在洛谷上是道黄题,即[普及/提高-] 所以虽然是提高组的,但是其实挺简单的. 我们来看下题面: [NOIP 2013]转圈游戏 刚看到题面作为一个蒟蒻感觉它都不配做黄题,但是直到我看清楚了后发现它 ...

  5. 洛谷P1312 [NOIP2011 提高组] Mayan 游戏 题解

    题目描述 Mayan puzzle 是最近流行起来的一个游戏.游戏界面是一个7 行 5×5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指 ...

  6. 【21NOIP提高组】报数题解

    [题目描述] 报数游戏是一个广为流传的休闲小游戏.参加游戏的每个人要按一定顺序轮流报数,但如果下一个报的数是 7 的倍数,或十进制表示中含有数字 7 ,就必须跳过这个数,否则就输掉了游戏. 在一个风和 ...

  7. noip2010提高组3题题解 by rLq

    本题地址http://www.luogu.org/problem/show?pid=1525 关押罪犯 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和 ...

  8. noi题库c语言 1.5答案,NOIP2004提高组复赛试题答案c语言版

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 bool finish, hash[256], used[27]; int n, stk[27]; string a, b, c; string word ...

  9. vijos 1106 NOIP2003 提高组 侦探推理 题解

    [原题] P1106侦探推理 Accepted 标签: [显示标签] 描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明 ...

最新文章

  1. 3ds max 改变模型轴的坐标系位置
  2. URI, URL, URN
  3. vue-router使用next()跳转到指定路径时会无限循环
  4. 2021年5月信息系统项目管理师案例分析真题+视频讲解(1)
  5. Java内存组成GC算法
  6. OpenCV3.4.5带GPU编译error: #error This file requires compiler and library support for the ISO C++ 2011
  7. A股开盘:深证区块链50指数涨0.51%,中远海科、广州浪奇涨停
  8. Angular 响应式表单 patchValue和setValue
  9. excel两列数据绘制单折线图
  10. 真人qq秀代码_波士顿动力Spot买家秀
  11. leetcode第1282题
  12. ThreadSanitizer检测工具-动态数据竞争检测技术
  13. 阿甘正传中的人生哲理
  14. 【干货资料 】简单的交换机光模块故障排查步骤
  15. 支付宝自动支付程序1.1算法注册机 Code.By.HackWm[D.S.T].
  16. txt文本的编码格式转换
  17. 同大取大同小取小口诀图解_不等式取值口诀
  18. 红米5双清_红米手机双清方法
  19. Yigo平台中系统自带的五个系统字段值
  20. Linux----SUID提权复现

热门文章

  1. 【Linux 内核】调度器 ⑧ ( 进程优先级源码 include\linux\sched\prio.h | 进程分类 | 实时进程 | 普通进程 | 进程优先级数值 | 0 ~ 99 实时进程 )
  2. 嵌入式Linux开发23——Linux并发与竞争
  3. rabbitmq使用ssl的问题解决
  4. 如果只能推荐一本 Python 书,我一定 Pick 它
  5. 沁恒CH582M开发板-4-OLED显示
  6. ubuntu16.04+双显卡驱动+cuda9.1+cudnn7.05深度学习环境配置
  7. TensorFlowLite量化-网上资料摘抄
  8. vb mysql 语句_VB与数据库编程常用的SQL语句总结
  9. 机械师F-117 Ubuntu 安装显卡驱动以及CUDA
  10. oracle 删除用户 ora-00604,ORACLE下用户无法顺利删除问题处理一则-ORA-00604和ORA-00942错误...