• luogu1091合唱队形


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

    合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K,他们的身高分别为T1,T2,…,TK 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1≤i≤K)

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

    输入输出格式

    输入格式:

    共二行。

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

    第二行有n个整数,用空格分隔,第i个整数Ti(130≤Ti≤230)是第i位同学的身高(厘米)。

    输出格式:

    一个整数,最少需要几位同学出列

    有两种思路,一是枚举波峰,向两边扩展,二是正着做个lis,反着再做个lis,求和的最大值

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=1e6+5;
     4 const int INF=1e9+7;
     5 int n,ans;
     6 int l[200],r[200],f[200],g[200];
     7 template <class t>void red(t &x)
     8 {
     9     x=0;
    10     int w=1;
    11     char ch=getchar();
    12     while(ch<'0'||ch>'9')
    13     {
    14         if(ch=='-')
    15             w=-1;
    16         ch=getchar();
    17     }
    18     while(ch>='0'&&ch<='9')
    19     {
    20         x=(x<<3)+(x<<1)+ch-'0';
    21         ch=getchar();
    22     }
    23     x*=w;
    24 }
    25 void input()
    26 {
    27     freopen("input.txt","r",stdin);
    28 }
    29 void read()
    30 {
    31     red(n);
    32     for(int i=1;i<=n;++i)
    33     {
    34         red(l[i]); 
    35         r[i]=l[i];
    36     }
    37 }
    38 void work()
    39 {
    40     for(int i=1;i<=n;++i)
    41         for(int j=0;j<i;++j)
    42             if(l[i]>l[j])
    43                 f[i]=max(f[i],f[j]+1);
    44     for(int i=n;i>=1;--i)
    45         for(int j=n;j>i;--j)
    46             if(r[i]>r[j])
    47                 g[i]=max(g[i],g[j]+1);
    48     for(int i=1;i<=n;++i)
    49         ans=max(ans,f[i]+g[i]);
    50     printf("%d",n-ans); 
    51 }
    52 int main()
    53 {
    54     input();
    55     read();
    56     work();
    57     return 0;
    58 }
    View Code
  • 相关阅读:
    poj 3666 Making the Grade
    poj 3186 Treats for the Cows (区间dp)
    hdu 1074 Doing Homework(状压)
    CodeForces 489C Given Length and Sum of Digits...
    CodeForces 163A Substring and Subsequence
    CodeForces 366C Dima and Salad
    CodeForces 180C Letter
    CodeForces
    hdu 2859 Phalanx
    socket接收大数据流
  • 原文地址:https://www.cnblogs.com/Achensy/p/10777743.html
Copyright © 2020-2023  润新知