码迷,mamicode.com
首页 > 其他好文 > 详细

合唱队列

时间:2017-08-05 18:58:43      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:space   思路   暴力   pre   求和   family   ace   ext   color   

                                                                 洛谷1091 合唱队列

   觉得自己就是个ZZ,打眼一看,没思路,一看数据,n<=100,这不会是大法师吧。。。于是打暴力,快一小时(加上30分钟下课~~哦,下课时和陈国凯聊了一会QQ%%%学神,mac)也没调出来,信心倍搓,然后放弃,看题解,哦cao,是最长上升子序列,然后秒掉了。。。。。。。。。

   先正着做一遍LIS,再倒着来一遍LIS,再枚举中间最高的人,正反求和,取最大,最后用n减去ans再减一,因为最高的人被算了两次。

 

#include<bits/stdc++.h>
using namespace std;
int n;
int a[101];
int fr[101],ba[101];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    
    for(int i=1;i<=n;i++)
      for(int j=1;j<i;j++)
        {
            if(a[i]>a[j])
            fr[i]=max(fr[i],fr[j]+1);
        }

    for(int i=n;i>=1;i--)
      for(int j=n;j>i;j--)
        {
            if(a[i]>a[j])
            ba[i]=max(ba[i],ba[j]+1);
        }    
        int ans=-1;
    for(int i=1;i<=n;i++)
    {
        ans=max(fr[i]+ba[i],ans);
    }
    cout<<n-ans-1;
    return 0;
}

 

合唱队列

标签:space   思路   暴力   pre   求和   family   ace   ext   color   

原文地址:http://www.cnblogs.com/war1111/p/7290914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!