D-Drop Voicing

Drop Voicing

https://ac.nowcoder.com/acm/contest/5670/D

链接:https://ac.nowcoder.com/acm/contest/5670/D
来源:牛客网

题意:

给你一个长度为n的数列,有两种操作,1.Drop-2,把倒数第二个数往前移,其余整体后移,2.Invert,把最后一个数往前移,其余整体后移。两种操作,连续做某种操作,当作一次,问你最少要进行多少次连续操作,使这个序列有序上升
##solution:
寻找以任意一个数为起点的最长上升子序列

#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
int n,a[505],c[505],maxn=0;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<n;i++)
    {
        memset(c,INF,sizeof(c));
        for(int j=0;j<n;j++)
        {
            *lower_bound(c,c+n,a[(i+j)%n])=a[(i+j)%n];
        }
        maxn=max(maxn,(int)(lower_bound(c,c+n,INF)-c));
    }
    cout<<n-maxn;
}
全部评论

相关推荐

03-12 15:34
已编辑
北京邮电大学 Java
呓语0613:老哥你这黑马点评改造是在哪里看的
点赞 评论 收藏
分享
勤奋努力的椰子这就开摆:这些经历跟硬件都没啥关系呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务