Codevs 1058 合唱队形 ---2004年NOIP全国联赛提高组 dp_codeup合唱队形思路-程序员宅基地

技术标签: 真·NOIP试题  dp  

Codevs 1058 合唱队形 —2004年NOIP全国联赛提高组

枚举中间的最高点跑最长上升和最长下降子序列。

注意,单调的数据答案是 0。真是一个好题, 数据在注释里。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <cstdlib>
#include <algorithm>
using namespace std;

#define MAXN (100+10)
int a[MAXN], dp[MAXN], za[MAXN];

#define INF (1e9)

int main()
{
    int n;
    cin >> n;
    for(int i = 1, j = n; i <= n && j >= 1; i ++, j --) 
        scanf("%d", &a[i]), za[j] = a[i];

    bool up = 0, down = 0;
    for(int i = 1; i < n; i ++)
        if(a[i] < a[i+1]) down = 1;
        else if(a[i] > a[i+1]) up = 1;

    if((up && !down) || (down && !up))
    {
        puts("0");
        return 0;
    }

    int ans = 0;
    for(int nn = 2; nn < n; nn ++)
    {
        int cnt = 0;
        fill(dp+1, dp+n+1, INF);

        for(int i = 1; i < nn; i ++)
            if(a[i] < a[nn])
                dp[lower_bound(dp+1, dp+n+1, a[i])-dp] = a[i];

        cnt += (lower_bound(dp+1, dp+n+1, INF)-dp-1);


        fill(dp+1, dp+n+1, INF);

        for(int i = 1; i < n-nn+1; i ++)
            if(za[i] < za[n-nn+1])
                dp[lower_bound(dp+1, dp+n+1, za[i])-dp] = za[i];

        cnt += (lower_bound(dp+1, dp+n+1, INF)-dp-1);
        cnt ++;

        ans = max(ans, cnt);
    }

    cout << n-ans << endl;

    return 0;
}

/*
输入数据 (显示前20行)
20
130 140 150 160 170 180 190 200 210 220 221 222 223 224 225 226 227 228 229 230
你的答案
< 1
正确答案
> 0

*/
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/LOI_QER/article/details/52971118

智能推荐

串口通讯参考文章

Android 串口开发,发送串口命令,读卡,反扫码,USB通讯,实现demo。——持续更新_androidschedulers.from(mwritethread.getlooper());-CSDN博客

用Rust编写Python扩展

Rust是一种内存安全的语言,它提供了与C语言类似的底层访问能力,但具有更强大的内存安全和并发特性。:一旦你编译了Rust代码并生成了共享库,你就可以在Python中像导入任何其他模块一样导入它,并调用你在Rust中定义的函数。通过这种方式,你可以利用Rust的强大功能和性能优势来扩展Python,同时享受到Python的易用性和丰富的生态系统。:你可以使用Cargo来构建你的Rust代码,并生成一个Python可以导入的共享库(例如。:首先,你需要在你的系统上安装Rust。,它会自动处理大部分构建配置。

SoundStream: 下一代的神经网络音频编解码器,实时压缩不牺牲音质

音频编解码技术的目标是,通过减少音频文件的大小来节省存储空间或减轻网络传输的负担。理想的情况下,即使音频被压缩,我们听到的声音与原版也应该没有任何区别。过去,已经有不少编解码技术被开发出来,满足了这些需求,比如Opus和EVS这两种编解码器就很出名。Opus是一个多才多艺的音频编解码器,它适用于各种应用,从视频会议(比如 Google Meet)到在线视频流(比如 YouTube)。Opus支持的压缩比率非常灵活,从每秒6千比特到每秒510千比特都可以。而EVS,是由针对移动>)开发的最新编解码器。

CentOS7下MySQL(Percona-Server-5.7)安装及简单使用_percona-server-5.7.24-27-rbd42700-el7-x86_64-bundl-程序员宅基地

文章浏览阅读1.9k次,点赞4次,收藏4次。本文介绍MySQL衍生版本Percona-Server-5.7的安装及使用。CentOS7下建议使用较高版本的Percona-Server!!!目录1、下载及安装2、简单使用1、启动mysql2、查看临时密码3、登录mysql4、修改root密码3、客户端连接mysql1、下载及安装下载Percona-Server-server-57-5.7.32,下载地址如下:https://www.percona.com/downloads/Percona-Server-_percona-server-5.7.24-27-rbd42700-el7-x86_64-bundle.tar

探索Freejam的世界:组建,驾驶,然后与Robocraft对抗-程序员宅基地

文章浏览阅读1.1k次。随着新发布的Xsolla与Freejam热门游戏Robocraft的合作关系达成,我们觉得是时候带大家回顾一下我们的合作过程和Robocraft的故事。我们和Freejam富有激情的成员聊了聊,做了一些采访,并了解到他们是如果将热门游戏从一个概念变成独立工作室的。可以为我们简单介绍一下Freejam的游戏和Robocraft么?Freejam成立20_freejam

html的li浮动之后往下移动,多个li浮动后居中显示问题-程序员宅基地

文章浏览阅读671次。在实际工作当中经常会遇到像上面这样的布局,就是不确定li的个数,但是想让它在父元素内水平居中显示或是相对父元素两端对齐。先看基础的/p>这样只能靠左显示。解决方法目前搜集了三种:第一种:利用css3选择器:nth-child(n)设定最后一列li的margin-right值为0。这也是我第一反应想到的方法,添加/p>第二种:设置ul的margin-left为负值。这是从猫爷的博客看到的..._li里面字体向下移动

随便推点

黑科技,Python 脚本帮你找出微信上删除你好友的人_微信出现brandsessionholder-程序员宅基地

文章浏览阅读1.5k次。编者按:本文来自稀土掘金江昪编译自 Github:0x5e/wechat-deleted-friends “ 清理下[微笑],不用回。你的朋友圈没事也该清清了,打开设置,通用,功能,群助手,全选,把我的信息粘贴一下,就可以了,发送就知道谁把你删了,方便你清人,不清不知道 ,一清吓一跳。” 相信大家在微信上一定被上面的这段话刷过屏,群发消息应该算是微信上流传最广的找到删除好友的方法..._微信出现brandsessionholder

MySQL存储过程 游标循环的使用_存储过程 重复定义同名游标 会覆盖吗?-程序员宅基地

文章浏览阅读1.5k次。MySQL存储过程 游标循环的使用_存储过程 重复定义同名游标 会覆盖吗?

浙江大学计算机科学导论试题,2003年度浙江大学计算机科学导论试卷.doc-程序员宅基地

文章浏览阅读372次。浙江大学2003-2004学年第一学期期末考试<>课程试卷A姓名: 专业: 学号:单选题(每小题1分,共20分)1.若计算机内存中有若干个内存单元,它们的地址编号从00H到FFH,则这些内存单元总共可存放的数据数量为:( B )A.256 bitB.256 ByteC.255 KBD.255 Kb2. 计算机网络的最基本功能就是在网络中的计算机之..._浙江大学计算机科学导论连线题

汽车信息安全入门总结(1)

汽车信息安全从2015年开始被引起重视发展至今已近10年时间,虽然有很多高屋建瓴的白皮书、指导标准可以指导我们从宏观了解汽车信息安全这个新兴行业,但真正实际需求落实到我们一线开发人员身上,总归感觉缺少点最底层的逻辑闭环。与汽车传统的主被动功能安全相比,汽车信息安全问题一旦出现可能会带来巨大影响,不仅对驾驶员、乘客的人身安全、隐私安全和财产安全造成影响,还会给车企或者供应商带来巨大经济损失,更有甚者影响国家安全(参考Tesla)。任何事物的出现都背景和根源,汽车信息安全也不例外。今天就来聊聊个人粗浅的看法。

【动态规划】Leetcode 70. 爬楼梯【简单】

8 空间复杂度:使用了长度为n + 1的数组dp,空间复杂度为O(n)。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?需要 n 阶你才能到达楼顶。:有两种方法可以爬到楼顶。

汽车新智能图谱里:理解腾讯的AI TO B路径

AI的产品力,产业的工程力

推荐文章

热门文章

相关标签