zoukankan      html  css  js  c++  java
  • 【?】【9907】合唱队形

    Time Limit: 10 second
    Memory Limit: 2 MB

    问题描述
    n位同学站成一排,音乐老师要请其中的(n-k)位同学出列,使得剩下的k位同学排成合唱队形。合唱队形是指这样的一种队形:设k位同学从左到由一次编号为1,2….k,他们的身高分别为t1,t2,…,tk,则他们的身高满足t1 <t2 < … < ti> ti+1 > … > tk; (1≤i≤k). 已知所有n位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。

    Input

    第一行是一个整数n(2≤n≤100),表示同学的总数。第二行有n个整数,用空格分隔,第i个整数ti(130≤ti≤230)是第i为同学的身高(厘米)。
    Output

    一个数据,就是最少需要即为同学出列

    Sample Input

    8
    186 186 150 200 160 130 197 220
    Sample Output

    4
    Sample Input1

    10
    130 130 174 130 185 230 206 219 210 173

    Sample Output1

    3

    【题目链接】:http://noi.qz5z.com/viewtask.asp?id=9907

    【题解】

    从左到右进行一次最长上升子序列的DP;
    从右到左进行一次最长上升子序列的DP;
    求出从左到右;以某个数字结尾的最长上升子序列的长度:
    求出从右到左;以某个数字结尾的最长上升子序列的长度;
    然后枚举站在中间的那个人的位置再在哪里;
    因为它的左边的人数和它的右边的人数都是固定的了;
    所以可以直接获取答案了;
    处理出在队伍里面的人的人数最大值是多少;
    用n减去这个最大值就是剩下的最少的人了;
    ps:五中平台不能用bits/stdc++.h这个挂

    【完整代码】

    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    const int MAXN = 200;
    
    int n,a[MAXN],l[MAXN],r[MAXN];
    
    int main()
    {
        scanf("%d",&n);
        for (int i = 1;i <= n;i++)
            scanf("%d",&a[i]);
        for (int i = 1;i <= n;i++)
        {
            l[i] = 1;
            for (int j = 1;j <= i-1;j++)
                if (a[j] < a[i])
                    l[i] = max(l[i],l[j]+1);
        }
        for (int i = n;i >= 1;i--)
        {
            r[i] = 1;
            for (int j = n;j >= i+1;j--)
                if (a[j] < a[i])
                    r[i] = max(r[i],r[j]+1);
        }
        int stay = 0;
        for (int mid = 1;mid <= n;mid++)
        {
            int tes = l[mid]+r[mid]-1;
            stay = max(stay,tes);
        }
        int out = n-stay;
        cout << out << endl;
        return 0;
    }
    
  • 相关阅读:
    spring cloud 网关
    spring cloud 熔断器
    spring cloud 健康检查
    spring cloud 分布式链路跟踪(集成zipkin)
    spring cloud 分布式链路追踪
    spring cloud eureka 微服务之间的调用
    spring cloud eureka注册中心
    ACCP8.0Y2Web前端框架与移动应用开发第5章Bootstrap制作微票儿首页
    ACCP8.0Y2Web前端框架与移动应用开发第4章Bootstrap的JavaScript插件
    ACCP8.0Y2Web前端框架与移动应用开发第3章Bootstrap组件
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7632060.html
Copyright © 2011-2022 走看看