N 位同学站成一排,音乐老师要请其中的 (N−K) 位同学出列,使得剩下的 K 位同学排成合唱队形。     合唱队形是指这样的一种队形:设 K 位同学从左到右依次编号为 1,2…,K,他们的身高分别为 T1,T2,…,TK,  则他们的身高满足 T1<…<Ti>Ti+1>…>TK(1≤i≤K)。     你的任务是,已知所有 N 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。输入格式
输入的第一行是一个整数 N,表示同学的总数。第二行有 N 个整数,用空格分隔,第 i 个整数 Ti 是第 i 位同学的身高(厘米)。输出格式
输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。数据范围
2≤N≤100,
130≤Ti≤230
输入样例:
8
186 186 150 200 160 130 197 220
输出样例:
4

首先分析题目

T1<T2<…<Ti>Ti+1>…>TK

就说明以Ti为分界线Ti的左边单调递增,而Ti的右边从右向左看也是单调递增

所以可以用两次最长上升子序列问题来解决

首先我们开辟两个数组f和g这两个数组,f是求i左边的最长上升子序列,g是求右边最长上升子序列

在将两个数组相加起来找到最大值,再让n减去最大值得到的就是答案

#include<stdio.h>
#define N 1100
int n;
int f[N],a[N],g[N];
int max(int a,int b)
{return a>b?a:b;
}
int main()
{int res=0;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);//求正方向的最长上升子序列for(int i=1;i<=n;i++){f[i]=1;for(int j=1;j<i;j++){if(a[j]<a[i])f[i]=max(f[i],f[j]+1);}}//求反方向的最长上升子序列for(int i=n;i>0;i--){g[i]=1;for(int j=n;j>i;j--){if(a[j]<a[i])g[i]=max(g[i],g[j]+1);}}for(int i=1;i<=n;i++)res=max(res,g[i]+f[i]-1);printf("%d",n-res);return 0;
}

NOIP2004提高组 合唱队形相关推荐

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

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

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

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

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

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

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

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

  5. 【动态规划刷题笔记】线性dp:合唱队形(最长递增子序列的变体)

    [NOIP2004 提高组] 合唱队形 - 洛谷 思路:最少出列,即挑出最多,即找最长递增子序列和最长递减子序列 设dp1[i]为以h[i]结尾的最长递增子序列 dp2[i]为以h[i]开头的最长递减 ...

  6. tyvj 1067 合唱队形 dp LIS

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

  7. NOIP1998-2018 CSP-S2 2019 2021提高组解题报告与视频

    CSP-S 2020 讲题录屏 CSP-S 2020 讲题录屏_哔哩哔哩_bilibili 冠军说题--ACM世界冠军吴卓杰,带你复盘2020 CSP-S2 冠军说题--ACM世界冠军吴卓杰,带你复盘 ...

  8. NOIP大纲整理:(零)历年2000-2016NOIP提高组题目分析

    年份 题目名称 考查内容 难度   2000-2016年NOIP提高组复赛题目 2000-A 进制转换 初等代数,找规律 ★ 2000-B 乘积最大 资源分配DP ★★★ 2000-C 单词接龙 DF ...

  9. 问题 C: 合唱队形

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

  10. P1066 2^k进制数 NOIP 2006 提高组 第四题

    洛谷蓝题(点击跳转) 提高组 第四题 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的 ...

最新文章

  1. 移动互联网时代之用户名和密码何去何从(1)
  2. php static 和 global,php中global static和$GLOBALS使用与区别
  3. Union定义变量进行外部调用的方法
  4. 自定义异常最佳实践_播放,自定义和组织媒体的最佳文章
  5. 解决hive交互模式退格键乱码
  6. subroutines of perl
  7. html 居中 center,html – 如何居中的元素 – 使用什么而不是align:center属性?
  8. discuz核心类库class_core的函数注释
  9. 浅析ISO三体系标准认证对企业的作用
  10. 2014全国计算机二级visual foxpro,全国计算机等级考试二级visual_foxpro试题
  11. 科大讯飞语音转写以及语音合成配置+遇到问题处理
  12. 计算机教学楼起名,给教学楼起名字(富有诗意教学楼名字)
  13. 小皮面板安装以及pikachu环境搭建
  14. MSI (Message Signaled Interrupts)
  15. 研究生查分方式-查分时间大汇总-文都管联院
  16. 电脑键盘错乱完美解决
  17. Linux下的压测工具 hey
  18. 苏宁易购接口api电商数据获取
  19. 获取股票实时交易数据的方法
  20. UVA 11549 模拟 Floyed判圈法的应用 Calculator Conundrum

热门文章

  1. 计算机操作系统32位,电脑操作系统中32位和64位的区别
  2. android 删除图片后通知系统图库删除图片
  3. 强化理解指针、指针数组和数组指针(从三味书屋到成华大道)
  4. Servlet、ServletConfig、ServletContext
  5. centos7.4源码安装nginx-1.16.1 及NGINX最全配置 缓存缩略图4层转发
  6. 树莓派入门:树莓派的初始设置
  7. ps.execute()不能当作执行结果反馈,需要用getResultSet或getUpdateCount
  8. 宝塔面板无法连接FTP空间解决方法(超详细)
  9. 何时需要对时间序列进行Log Transformation
  10. Semantic Parsing on Freebase from Question-Answer Pairs【论文笔记】