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

对于全部的数据,保证有 n<=100。

思路:

枚举最中间的那个同学,然后对其左边的同学身高序列求最长上升子序列,对其右边的身高序列求最长下降子序列,则两部分的长度之和加上1就是以该同学为中心的合唱队形的长度。事实上,并非需要每次都求上升序列和下降序列长度,只需要在一开始从左边求一次最长上升序列用rise[i]表示序列[1...i],并且以a[i]为结尾的最长上升序列长度。从右边开始求一次最长下降序列长度down[i]表示[i...n]中以a[i]为开头的最长下降序列长度。这样的话,队形长度就是max{rise[i]+down[i]-1}

动态规划练习2 [合唱队形]相关推荐

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

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

  2. 合唱队形(动态规划)

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

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

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

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

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

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

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

  6. P1091 合唱队形(LIS)

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

  7. 洛谷P1091 合唱队形

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

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

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

  9. tyvj 1067 合唱队形 dp LIS

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

最新文章

  1. 一文初识:美、日、中3国药品GMP特点
  2. android系统学习笔记十一
  3. 【问题解决】M5神库M5Stack-SD-Updater安装及使用方法
  4. python进程监控并重启
  5. matlab文件批量导入问题总结
  6. 【BZOJ 2323】 2323: [ZJOI2011]细胞 (DP+矩阵乘法+快速幂*)
  7. PythonOpencv-分类器—SVM,KNearest,RTrees,Boost,MLP
  8. 【三维深度学习】多视角立体视觉 MVSNet代码解读
  9. 设置单元格填充方式_【WPS神技能】Excel表格中单元格内的双色填充效果有点意思!...
  10. kafka : CommitFailedException Commit cannot be completed since the group has already rebalanced
  11. matlab给图像加云,matlab怎么给图像加雾
  12. Kaldi AMI数据集脚本学习1----cmd.sh和path.sh
  13. 【JAVA】什么时候会发生空指针异常
  14. tomcat绕过同源策略(CORS)--亲测有效
  15. Echarts3里的地图标记点事件效果实现
  16. Redis下载安装与配置(windows)
  17. 如何提升软件测试思维?
  18. MapReduce经典案例实战
  19. JavaScript|表格背景颜色改变页面
  20. WEB在线客服系统(websocket+Golang)

热门文章

  1. oracle日志文件大小规则,在线重做Oracle日志文件大小
  2. mysql 错误 0152_SP2-1503 SP2-0152 错误解决
  3. leetcode202. 快乐数
  4. leetcode707:设计链表(增删差)
  5. Leetcode 数据结构与算法题解大全——目录(推荐收藏,持续更新)
  6. 转 android anr 分析示例,[摘]Android ANR日志分析指南之实例解析
  7. [mybatis]缓存_一级缓存_一级缓存失效的四种情况
  8. [XML-Jsoup]Jsoup_对象的使用(Jsoup工具类,Document,Elements,Element,Node)
  9. [剑指offer]面试题19:二叉树的镜像
  10. [USACO1.5]八皇后 Checker Challenge