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

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

输出
可能包括多组测试数据,对于每组数据,
输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。

样例输入

3
174 208 219
6
145 206 193 171 187 167
0

样例输出

0
1

思路:求合唱队形最多人数,再用总人数减去即得最少需要几位同学出列。具体思路见代码。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;const int maxn = 110;
int A[maxn];
int d1[maxn], d2[maxn];int main() {int n;while (~scanf("%d", &n)) {if (n == 0) break;memset(d1, 0, sizeof(d1));memset(d2, 0, sizeof(d2));for (int i = 1; i <= n; i++) {scanf("%d", &A[i]);}for (int i = 1; i <= n; i++) { //从i=1开始从左向右计算最长严格递增序列d1[i] = 1;for (int j = 1; j < i; j++) {if (A[j] < A[i] && d1[i] < d1[j] + 1) {d1[i] = d1[j] + 1;}}}for (int i = n; i >= 1; i--) { //从i=n开始从右向左计算最长严格递增序列d2[i] = 1;for (int j = n; j > i; j--) {if (A[i] > A[j] && d2[i] < d2[j] + 1) {d2[i] = d2[j] + 1;}}}int k = 0;for (int i = 1; i <= n; i++) {k = max(k, d1[i] + d2[i]); //取合唱队形最多人数}printf("%d\n", n - k + 1);}return 0;
}

问题 C: 合唱队形相关推荐

  1. 合唱队形(递增再递减的最长子序列)

    题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, -, K,他们的 ...

  2. P1091 合唱队形[单调性+DP]

    题目来源:洛谷 题目描述 N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K,他们的身高 ...

  3. P1091 合唱队形(LIS)

    题目描述 NNN位同学站成一排,音乐老师要请其中的(N−KN-KN−K)位同学出列,使得剩下的KKK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K1,2, ...

  4. 洛谷P1091 合唱队形

    洛谷P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K他 ...

  5. UOJ #214 合唱队形 (概率期望计数、DP、Min-Max容斥)

    UOJ #214 合唱队形 (概率期望计数.DP.Min-Max容斥) 9个月的心头大恨终于切掉了!!!! 非常好的一道题,不知为何uoj上被点了70个差评. 题目链接: http://uoj.ac/ ...

  6. tyvj 1067 合唱队形 dp LIS

    P1067 合唱队形 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2004 提高组 第三道 描述 N位同学站成一排,音乐老师要请其中的(N-K)位 ...

  7. 洛谷1091合唱队形

    题目描述 N位同学站成一排,音乐老师要请其中的(N−K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K,他们的身高分别为T1​,T ...

  8. 【DP】合唱队形(jzoj 1122)

    合唱队形 jzoj 1122 题目大意: 有n个人,按一定的顺序站成一排,最少减去多少个人可以使队列以一个人为中心,两边分别递减 输入样例 8 186 186 150 200 160 130 197 ...

  9. 动态规划练习2 [合唱队形]

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

  10. 【例9.8】合唱队形

    [例9.8]合唱队形 链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1264 时间限制: 1000 ms         内存限制: 65536 ...

最新文章

  1. 封装CoreGraphics的API简化绘图操作
  2. DSP与FPGA和嵌入式是什么关系?
  3. 一文看懂物联网完整产业链条
  4. BZOJ-3190-赛车-JLOI2013-暴力枚举
  5. java junit Assert断言用法示例: Assert.assertEquals(期望的结果,运算的结果)
  6. gulp实用配置(1)——demo
  7. div之间的间距如何去除_如何统一两端开发中的文本行高
  8. bzoj 2152 聪聪可可
  9. 用vs2010写c语言调试,vs2010怎么写c语言调试
  10. 安搭Share:霜降来,寒意到
  11. Paypal国际版网站集成简易教程
  12. WIN8软件测试,win8实测!!!测试常用软件。
  13. 用途DF无线数据收发模
  14. yarn安装的好用插件
  15. UWP tips (与wp8.1的不同)
  16. 仓山工业机器人_2019年福建省机器人行业企业名录127家
  17. 在阿里云做前端这几年~
  18. 载波聚合mac_Lte-a终端mac层载波聚合一致性测试方法和装置的制造方法
  19. Java求一组数中最大值的方法
  20. D3D 9和D3D 11绘制流水线对比

热门文章

  1. JDBCUtils类的编写(创建连接,关闭连接)
  2. ExecuteNonQuery()返回值注意点
  3. 建tcode維護自己創建的數據表(SE54/SM30)
  4. myEclipse(MyEclipse)下VSS的安装和使用
  5. android平台下OpenGL ES 3.0从零开始
  6. 第三方直播平台都有哪些
  7. 关于TI公司DSP工程调用DELAY_US()进入非法中断问题的解决
  8. pytorch实现 chatbot聊天机器人
  9. 计算机机房管理系统数据库设计入门经典,机房管理系统数据库设计
  10. 修改历史git提交用户名和邮箱错误,解决没有小绿点