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

Luogu1091 合唱队形

时间:2018-04-27 21:15:30      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:++   source   子序列   include   ret   pre   ace   --   space   

线性动态规划

思路:一遍算出最长不降子序列,再一遍算出最长不升子序列,再一遍历维护max求出答案。

#include<iostream>
using namespace std;
int n,t[105],fd[105],ans,fu[105];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>t[i];
    for(int i=1;i<=n;i++)
        for(int j=0;j<i;j++)
            if(t[i]>t[j])
                fd[i]=max(fd[i],fd[j]+1);
    for(int i=n;i>0;i--)
        for(int j=n+1;j>i;j--)
            if(t[i]>t[j])
                fu[i]=max(fu[i],fu[j]+1);
    for(int i=1;i<=n;i++)
        ans=max(ans,fu[i]+fd[i]-1);
    cout<<n-ans;
    return 0;
}

Luogu1091 合唱队形

标签:++   source   子序列   include   ret   pre   ace   --   space   

原文地址:https://www.cnblogs.com/pushinl/p/8964198.html

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