zoukankan      html  css  js  c++  java
  • 洛谷P1091 合唱队形

    题解:要让出去的人最少,我们很容易会想到让留下的人更多。

    要让队列单调的不等关系,我们很容易就想到了最长上升子序列。

    问题是找到转折点,所以我们就做一遍最长上升子序列,再做一遍最长下降子序列,然后枚举每个点当转折点

    的答案大小即为留在队伍里最多的人,用总人数减去即为答案。

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 
     6 using namespace std;
     7 
     8 int n,dp_up[205],dp_down[205],a[205];
     9 
    10 int main()
    11 {
    12     scanf("%d",&n);
    13     for(int i=1;i<=n;i++)
    14         scanf("%d",&a[i]);
    15     for(int i=1;i<=n;i++)
    16     {
    17         dp_up[i]=1;
    18         for(int j=1;j<i;j++)
    19             if(a[i]>a[j]&&dp_up[j]+1>dp_up[i]) dp_up[i]=dp_up[j]+1;
    20     }
    21     for(int i=n;i>=1;i--)
    22     {
    23         dp_down[i]=1;
    24         for(int j=n;j>i;j--)
    25             if(a[i]>a[j]&&dp_down[j]+1>dp_down[i]) dp_down[i]=dp_down[j]+1;
    26     }
    27     int ans=0;
    28     for(int i=1;i<=n;i++)
    29         ans=max(ans,dp_up[i]+dp_down[i]-1);
    30     printf("%d",n-ans);
    31     return 0;
    32 }
    View Code
  • 相关阅读:
    单例和静态类
    Aggregate
    lc.exe已退出代码为1
    MVC 使用entity framework 访问数据库 发布IIS
    MVC 发布
    Nhiberate (三)测试
    Nhiberate (二) 搭项目
    初次安装git配置
    十大Intellij IDEA快捷键(转)
    Git强制覆盖master分支
  • 原文地址:https://www.cnblogs.com/Hoyoak/p/11393287.html
Copyright © 2011-2022 走看看