题目:N 位同学站成一排,音乐老师要请其中的 (N-K)(N−K) 位同学出列,使得剩下的 KK 位同学排成合唱队形。

合唱队形是指这样的一种队形:设 KK 位同学从左到右依次编号为 1,2,\cdots K1,2,⋯K,他们的身高分别为 T_1,T_2,\cdots,T_KT1​,T2​,⋯,TK​, 则他们的身高满足 T_1< \cdots < T_i> T_{i+1}> \cdots >T_K(1 \leq i \leq K)T1​<⋯<Ti​>Ti+1​>⋯>TK​(1≤i≤K)。

你的任务是,已知所有 NN 位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

输入描述

输入两行。

第一行是一个整数 N\ (2 \leq N \leq 100)N (2≤N≤100),表示同学的总数。

第二行有 nn 个整数,用空格分隔,第 ii 个整数 T_i(130 \leq T_i \leq 230)Ti​(130≤Ti​≤230) 是第 ii 位同学的身高(厘米)。

输出描述

输出一个整数,就是最少需要几位同学出列。

输入输出样例

示例 1

输入

8
186 186 150 200 160 130 197 220

输出

4

解:按题目要求,我们需要找到是一个先递增再递减的序列,总人数减去这个序列中人数即为结果。我们分别设置d1,d2两个数组存放升序列和减序列(逆增序)的最大长度,再找出最大值即可。

代码:

#include <stdio.h>
#include <stdlib.h>int max(int a,int b){return a>b?a:b;
}int main(int argc, char *argv[])
{int n;int a[100]={'\0'},d1[100]={'\0'},d2[100]={'\0'};scanf("%d",&n);            //输入数据for(int i=0;i<n;i++){scanf("%d",&a[i]);}for(int j=0;j<n;j++){                   //寻找最长增序列d1[j]=1;for(int i=0;i<j;i++){if(a[j]>a[i]){d1[j]=max(d1[j],d1[i]+1);}}}for(int k=n-1;k>=0;k--){                 //寻找最长减序列d2[k]=1;for(int i=n-1;i>k;i--){if(a[k]>a[i]){d2[k]=max(d2[k],d2[i]+1);}}}int m=1;for(int p=0;p<n;p++){                   //求出满足题意的最大值if(m<(d1[p]+d2[p])){m=d1[p]+d2[p];}}printf("%d",n-m+1);       //在计算最大长度时,最大的数字被计算了两次,所有需要减1:n-(m-1)return 0;
}

蓝桥杯:合唱队形(C语言)相关推荐

  1. 蓝桥杯2016年C语言B组-交换瓶子

    蓝桥杯2016年C语言B组 交换瓶子 代码 交换瓶子 有N个瓶子,编号 1 ~ N,放在架子上. 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置. 经过若干次后,使得瓶子的 ...

  2. 蓝桥杯第十届c语言试题答案,蓝桥杯试题答案(C语言)蓝桥杯试题答案(C语言).pdf...

    蓝桥杯试题答案(C语言)蓝桥杯试题答案(C语言) 1.亲密数:假设有a.b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并 且a不等于b,则称a和b是一对亲密数.如284和220就是一对亲 ...

  3. 蓝桥杯c语言校内选拔赛试题,2013年蓝桥杯校内选拔赛C语言B组.docx

    2013年蓝桥杯校内选拔赛C语言B组.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水 ...

  4. 2015年第七届蓝桥杯省赛C语言B组

    2015年第七届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题: 题目:奖券数目 有些人很迷信数字,比如带"4"的数字,认为和"死"谐音,就 ...

  5. 蓝桥杯软件类Java语言IDE(Eclipse)安装

    蓝桥杯软件类Java语言IDE(Eclipse)安装以及个性化设置 平时都在用idea搞工程类项目,正好报了下学期的蓝桥杯算法比赛,看到官网要求用eclipse编码,之前也参加过ccf-csp的比赛, ...

  6. 蓝桥杯-最大最小公倍数java语言

    蓝桥杯-最大最小公倍数java语言 开局一句话: 做这道题的时候,便没有对最小公倍数十分了解,就直接写了,也是惭愧,走了太多弯路,后来才知道,最小公倍数不是单单的几个数相乘就完了. 问题描述: 已知一 ...

  7. 2012年第三届蓝桥杯省赛C语言B组

    2012年第三届蓝桥杯省赛C语言B组 题目来源:蓝桥杯 作者:GGG166 第一题 题目:微生物增殖 假设有两种微生物 X 和 Y X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次( ...

  8. 蓝桥杯7届c语言 c组答案,第七届蓝桥杯C语言C组-(自己懂的题目)

    第七届蓝桥杯C语言C组-(自己懂的题目) 表示刚刚查了成绩,省赛一等奖,有资格去北京了,然后写一下总结, 先来写一下我懂的题目,毕竟我也是菜鸟,听说国赛比预赛难几个等级... 第一题 报纸页数 X星球 ...

  9. 第九届蓝桥杯 省赛 C语言A组

    第一次参加这种比赛,心里有点小忐忑,虽然已是大三狗,但是还是啥都不会.算是一次锻炼吧.. 下面答案都是自己做的,有什么不对的地方还恳请指出.                               ...

  10. 蓝桥杯java和c语言区别_C语言蓝桥杯比赛原题和解析

    蓝桥杯:在计算机编程领域,是具有一定含金量的竞赛,用于选拔信息技术人才. 一般分为多个领域,其中包含了C/C#/C++/Java/Python等编程语言的测试题,多为算法的设计题. 下面,在搜题过程中 ...

最新文章

  1. jQuery中的closest()和parents()的差别
  2. 判断一颗二叉树是否为二叉搜索树(Validate Binary Search Tree)
  3. Oracle死锁解决常用方法
  4. 计算机组成原理组合逻辑控制器实验报告,计算机组成原理实验报告—认识性实验 华北电力大学.doc...
  5. 《『若水新闻』客户端开发教程》——05.设计新闻列表UI
  6. oracle教程之解决DML事务锁定的冲突(二)
  7. ubuntu-18.10 允许 root登录图形界面
  8. 全才出书,值得一读——Leo推荐《我也能做CTO之程序员职业规划》
  9. mysql数据库增删改操作不自动提交事务
  10. CentOS查看端口
  11. 大学计算机应用教程马秀麟,大学计算机基础电子教案.docx
  12. 【PhotoShop基础A篇】磨皮/图层/液化
  13. 三、字符串拼接和占位符
  14. com.mysql.jdbc.MysqlDataTruncation 报错
  15. 矩阵补全(Matrix Completion)和缺失值预处理
  16. 计算机应用基础2004版,计算机应用基础试题2004年6月
  17. Windows简体系统和繁体系统下的乱码处理
  18. GICv3软件overview手册之GICv3基本功能(1)
  19. OpenGL硬件加速判断
  20. 理解linux cpu load

热门文章

  1. c语言方波生成程序,关于C#:在软件上生成方波以进行模拟输入/输出
  2. 深度技术 GHOST XP 电脑城克隆版 V7.0 (NTFS/F32)
  3. 什么是 P2P、P2C 、O2O 、B2C、B2B、 C2C
  4. ASA防火墙配置清除
  5. CV2 找不到指定模块
  6. 对时间(Date)的计算方法
  7. 分享:Android清除本地数据缓存代码
  8. 从命令行编译 JScript 代码
  9. 免费SSL证书申请和部署
  10. 手机ram和rom的区别