牛客网–合唱队形

牛客网–合唱队形

题目描述
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位同学的身高(厘米)。
输出描述:
可能包括多组测试数据,对于每组数据,
输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。
示例1
输入
8
186 186 150 200 160 130 197 220
输出
4

关键就是找出一个人在从左到右处于第几个位置,从右到左处于第几个位置,然后相加减一就是队列里的人数,找出其中最大的,最少要去除的人数就可以得到了。

#include<bits/stdc++.h>
using namespace std;

int max(int a,int b)
{
    if(a>b) return a;
    else return b;
}
//left记录每个数从左边数是第几个数(按照大小顺序)
//right记录从右边数
int main(){
    int n;
    int stu[100];
    int left[100],right[100];
    while(scanf("%d",&n)!=EOF){
        for(int i=0;i<n;i++){
            cin>>stu[i]; //输入数据
        }
        for(int i=0;i<n;i++){//每个数 数的时候,算上本身
            left[i]=1;
            right[i]=1;
        }
        for(int i=1;i<n;i++){//从左往右,从第二个数开始,因为第一个数肯定就是从左开始的第一个
            for(int j=0;j<i;j++){//从头开始,看是否符合由小到大
                if(stu[i]>stu[j]){
                    left[i]=max(left[i],left[j]+1);
                }
            }
        }
        for(int i=n-2;i>=0;i--){
            for(int j=n-1;j>i;j--){
                if(stu[i]>stu[j]){
                   right[i]=max(right[i],right[j]+1);
                }
            }
        }
        int MAX=0;
        for(int i=0;i<n;i++){
            stu[i]=left[i]+right[i];
            MAX=max(MAX,stu[i]);
        }
        cout<<n-MAX+1<<endl;
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100209.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • TCP: time wait bucket table overflow的解决方法「建议收藏」

    TCP: time wait bucket table overflow的解决方法「建议收藏」1、问题描述:今天发现服务器日志中/var/log/message中有很多下面的这样的日志,并且es的进程占用cpu资源很高。然后百度查看了一下TIME_WAIT的值,[root@hadoop13~]#netstat-n|awk’/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}’发现等待数达到了10000多了。其实也可以用下面查

    2022年5月27日
    31
  • Linux中进行模块操作的命令

    Linux中进行模块操作的命令

    2021年8月18日
    55
  • 电脑登陆出现此工作站和主域间的信任关系失败[通俗易懂]

    电脑登陆出现此工作站和主域间的信任关系失败[通俗易懂]问题如下:具体操作步骤可参考https://jingyan.baidu.com/article/37bce2be193fd51003f3a259.htm

    2022年10月18日
    0
  • idea 2021.9激活码_最新在线免费激活

    (idea 2021.9激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S32PGH0SQB-eyJsaWNlb…

    2022年3月26日
    83
  • epplus 速度_【推荐套件】Excel利器 NPOI VS EPPLUS

    epplus 速度_【推荐套件】Excel利器 NPOI VS EPPLUS【工具】Excel利器—NPOIVSEPPLUS由于最近客户端不停抱怨,查询会宕机。其实,这算是老问题了,主要原因是:Query性能不佳由于该查询会使用到的Table事务量很大,容易会有Wait的现象到最后就TimeOut了。查询数据量太大,目前是放到DataSet之后直接用GridView绑定。其实,以上种种造成因素太多了。再加上,查询出来的结果使用端整批下载或是自订下载成Excel。最一开…

    2022年6月26日
    32
  • 人人网面试经历「建议收藏」

    人人网面试经历「建议收藏」对于一年开发经验的程序员来说是非常尴尬的,经过一个月的面试总结,也快入职心仪的公司了,差不多算是敲定了工作。所以想到陆续的放出一些互联网公司的面试经验来,虽然面不上,但是可提供给别人参阅,以便你们遇到类似或者同一家的公司能够见招拆招!

    2022年9月7日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号