• 九度OJ-1131-合唱排队-双向递增子序列


    题目1131:合唱队形

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:4948

    解决:1570

    题目描述:

    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位同学的身高(厘米)。

    输出:

    可能包括多组测试数据,对于每组数据,
    输出包括一行,这一行只包含一个整数,就是最少需要几位同学出列。

    样例输入:
    8
    186 186 150 200 160 130 197 220
    样例输出:
    4
    来源:
    2008年北京大学方正实验室计算机研究生机试真题
    #include <stdio.h>
    int max(int a, int b)    {
        return a>b ? a:b;
    }
    int min(int a, int b)     {
        return a<b ? a:b;
    }
    
    int up[101];
    int down[101];
    int list[101];
    int ap[101];
    
    int main()    {
        int N;
        while(scanf("%d", &N) != EOF)    {
            for(int i = 1; i <= N; i++)    {
                scanf("%d", &list[i]);
            }
            for(int i = 1; i <= N; i++)    {
                int tmin = 1;
                for(int j = 1; j < i; j++)    {
                    if(list[j] < list[i])    {
                        tmin = max(tmin, up[j] + 1);
                    }
                }
                up[i] = tmin;
            }
            for(int i = N; i >=1; i--)    {
                int tmax = 1;
                for(int j = N; j>=i; j--)    {
                    if(list[i] > list[j])    {
                        tmax = max(tmax, down[j] + 1);
                    }
                }
                down[i] = tmax;
            }
            int re = 230;
            for(int i = 1; i <= N; i++)    {
                ap[i] = N+1-up[i]-down[i];
                // printf("%d %d 
    ", i, ap[i]);
                re = min(re, ap[i]);
            }
            printf("%d
    ", re);
        }
        return 0;
    }

    这道题和1112题都是同一类,多看

  • 相关阅读:
    SQL关闭连接,及分离数据库
    C# 用户选择单个压缩-系统自带压缩
    设计模式7大原则--01
    httpclient
    Mac idea 常用命令
    集合整理
    几种简单的排序算法
    基础数据结构简介
    git 常用命令3
    git 常用命令2
  • 原文地址:https://www.cnblogs.com/QingHuan/p/7097991.html
Copyright © 2020-2023  润新知