【牛客网】 排序子序列

2023-10-30

时间限制:1秒 空间限制:32768K

牛牛定义排序子序列为一个数组中一段连续的子序列,并且这段子序列是非递增或者非递减排序的。牛牛有一个长度为n的整数数组A,他现在有一个任务是把数组A分为若干段排序子序列,牛牛想知道他最少可以把这个数组分为几段排序子序列.
如样例所示,牛牛可以把数组A划分为[1,2,3]和[2,2,1]两个排序子序列,至少需要划分为2个排序子序列,所以输出2

输入描述:

输入的第一行为一个正整数n(1 ≤ n ≤ 10^5)

第二行包括n个整数A_i(1 ≤ A_i ≤ 10^9),表示数组A的每个数字。

 

输出描述:

输出一个整数表示牛牛可以将A最少划分为多少段排序子序列

示例1

输入

6
1 2 3 2 2 1

输出

2

 

#include <iostream>
using namespace std;
typedef unsigned long long ll;
int main(){
     
    ll n;
    int flag = 2;
    while (cin>>n){
        flag = 2;
        ll a[n];
         
        ll i ;
        ll sum = 0;
        for (i = 0 ;i<n;i++){
            cin>>a[i];
             
        }
     
//      cout<<flag<<endl;
//      cout<<i<<endl;
        for (i = 0;i<n-1;i++){
        //  cout<<i<<endl;
            if (flag == 2){
                if (a[i]>a[i+1]){
                    flag = 1;
                   
                }else if (a[i]<a[i+1]){
                    flag = 0;
                    
                }
            }else if (flag == 0&&a[i]>a[i+1]){
             
                flag = 2;
                sum++;
                //cout<<flag<<" "<<a[i]<<endl;
                 
                 
            }else if (flag == 1&&a[i]<a[i+1]){
                //  cout<<flag<<" "<<a[i]<<endl;
                flag = 2;
                sum++;
                //cout<<flag<<" "<<a[i]<<endl;
                 
                 
                 
            }
             
        }
     
     
        cout<<sum+1<<endl;
         
    }
    return 0;
}

 

转载于:https://my.oschina.net/u/3030978/blog/1359406

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【牛客网】 排序子序列 的相关文章

  • Hadoop伪分布模式配置

    Hadoop共有三种部署方式 本地模式 伪分布模式及集群模式 本次安装配置以伪分布模式为主 即在一台服务器上运行Hadoop 如果是分布式模式 则首先要配置Master主节点 其次配置Slave从节点 以下说明如无特殊说明 默认使用root
  • QT多窗口

    常用的窗体基类是 QWidget QDialog 和 QMainWindow 在创建 GUI 应用程序时选择窗体基类就是从这 3 个类中选择 QWidget 直接继承于 QObject 是 QDialog 和 QMainWindow 的父类
  • 在学习Python时遇到的一些项目bug

    启动线程 开启任务时 1 出现错误TypeError init got an unexpected keyword argument arg ok python没有能解析出来这个参数 好吧少写了个s 加上就没啥问题了 2 出现错误TypeE
  • 丑数打表 & 计算 (自用)

    丑数定义 只包含因子2 3 5的正整数被称作丑数 define min a b a lt b a b define min4 a b c d min min a b min c d int choushu 5850 int main int
  • 代理模型:最小二乘支持向量回归(LSSVR)--- MATLAB程序

    写在开头 代理模型是工程问题中常用的一个优化方法 当实际问题计算量很大 不容易求解时 可以使用计算量较小 求解迅速的简化模型来替代原模型 加速优化过程 代理模型采用一个数据驱动的 自下而上的办法来建立 首先 通过抽样得到有限个样本点 输入
  • java烟花代码_一个美丽的java烟花程序

    import java awt import java applet import java awt event import javax swing public class ChatApplet extends Applet imple
  • Shell 从入门到精通(二)

    变量的赋值方式 定义或引用变量时注意事项 双引号是弱引用 单引号是强引用 即单引号是所见即所得 双引号是进行了赋值操作 两个反引号等价于 反引号的中的shell命令会被先执行 变量数值运算 1 整数运算 expr 五颗星 2 整数运算 四颗
  • Spring源码解析4.createBean()方法解析

    createBeanInstance protected BeanWrapper createBeanInstance String beanName RootBeanDefinition mbd Nullable Object args
  • ​LeetCode刷题实战336:回文对

    算法的重要性 我就不多说了吧 想去大厂 就必须要经过基础知识和业务逻辑面试 算法面试 所以 为了提高大家的算法能力 这个公众号后续每天带大家做一道算法题 题目就从LeetCode上面选 今天和大家聊的问题叫做 回文对 我们先来看题面 htt
  • 山石岩读丨前沿领域探析——汽车CAN总线协议详解及攻击面分析

    1 CAN总线的基本概念以及由来 CAN Controller Area Network 总线协议是由 BOSCH 发明的一种基于消息广播模式的串行通信总线 它起初用于实现汽车内ECU之间可靠的通信 后因其简单实用可靠等特点 而广泛应用于工
  • 解读HashMap中put方法的源码

    解析hashMap的put方法是如何存储一个键值 一 put方法 代码1 1 V put K key V value 方法 public V put K key V value return putVal hash key key valu
  • Java 面向对象之多态

    目录 1 接口 1 1 接口中成员的访问特点 1 2 默认方法 1 3 静态方法 1 4 私有方法 1 5 小结 2 多态 2 1 多态中成员的访问特点 2 2 多态的好处和弊端 2 3 多态中的转型 3 内部类 3 1 成员内部类 3 2
  • SpringBoot框架总结

    SpringBoot框架总结 一 SpringBoot框架的概念 1 传统框架的弊端 例如传统的SSM框架整合了MyBatis Spring SpringMVC框架 但其需要繁琐且重复的配置使程序员很是痛苦 2 SpringBoot框架 S
  • ros中编译release版本

    catkin build cmake args DCMAKE BUILD TYPE Release
  • Java做一个进制转换小工具

    通过swing和awt实现的一个简单的进制转换工具 可以进行数之间的进制转换 只有两个类 所有代码都放在https github com 13337356453 BHD Converter 可自行下载 因为某些特殊的原因 没有把窗口弄得更漂
  • Selenium中的断言(python篇)

    Selenium常用的断言包括 页面属性断言 断言标题 url或页面源码中是否包含或不包含特定字符 元素存在断言 断言指定元素存在 图片及链接断言 断言图片正常显示 链接可以正常打开 页面属性断言 这是最常用的断言方式 可以用来断言页面是否
  • 李开复创业--创新工场未来的前景是怎样?

    创新工场现在是房子不小 人不多 这个星期我们招聘了第七个人 节目还没开始 李开复对本报道如是说 十一 长假 他赶赴美国与投资商谈融资 同时不忘到两所知名高校演讲招揽人才 现在 刚刚满月的 创新工场 未来的前景是怎样 招聘人才一个月 招揽人才
  • 面试题10道02 2021.11.26

    1 什么是HTTP报文 Http报文就是客户端和服务端之间传送的数据块 2 HTTP报文由哪三部分组成 HTTP报文由起始行 头部 主体组成 其中起始行是对该报文进行的描述 头部是对报文的属性进行的描述 主体则是数据的内容 3 HTTP报文
  • Movidius神经计算棒5-编译ncsdk

    上面是我的微信和QQ群 欢迎新朋友的加入 这里有个小提示 先把硬件接上电脑 否则会编译报错 然后最好不要用USB HUB线 make install 完成之后如下所示 make examples 完成之后是这样的 测试
  • 希尔排序详解

    1 概述 希尔排序 Shell s Sort 是插入排序的一种又称 缩小增量排序 Diminishing Increment Sort 是直接插入排序算法的一种更高效的改进版本 希尔排序是非稳定排序算法 该方法因 D L Shell 于 1

随机推荐

  • scrapy中关于Splash的使用

    为什么要学习Splash 我们经常使用scrapy框架编写爬虫代码 站在巨人的肩膀上感觉很好 但是一旦遇到网站用JavaScript动态渲染 scrapy就显得有些力不从心了 我们了解的selenium可以完成动态加载 返回浏览器渲染后的页
  • python字符串长度输出_python输出指定长度的字符串

    import io import sys import random import string def generate random str randomlength 16 生成一个指定长度的随机字符串 其中 string digits
  • 基本数据类型对象包装类

    基本数据类型对象包装类 为了方便操作基本数据类型值 将其封装成了对象 在对象中定义了属性和行为丰富了该数据的操作 用于描述该对象的类就称为基本数据类型包装类 byte Byte short Short int Integer long Lo
  • IDEA自带plantUML绘制时序图

    一 时序图的作用 时序图 Sequence Diagram 又名序列图 循序图 是一种UML交互图 它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作 它可以表示用例的行为顺序 当执行一个用例行为时 其中的每条消息对应一个类操作
  • Unix环境高级编程环境搭建

    在网上下载书中源代码 点此连接 点击打开链接 解压文件按 cd apue 3e make 在 make 的这个过程中一般会出错 后面显示 can t find lbsd 解决办法是添加 libbsd a 的静态链接库 指令如下 ub系统 s
  • echarts x轴 type=‘time‘

    关于x轴的设置在开发中是很常见的操作 如果只是设置一些定死的数据 那么就很简单 但是如果要设置某个可变的 且数量很多的x轴的话 不是一件很简单的事情了 比如我最近在工作中就遇到了 下面来和大家一起分享一下 开发需求如下 一个折线图表 默认显
  • 团队工具

    worktile Teambition 今目标 钉钉
  • 【机器学习】- 支持向量机

    预备知识 1 法向量 Wx b 0 w是什么 Wx b 0是直线方程 其中w表示法向量 法向量的指向由具体值确定 例如x y 2 0 法向量为 1 1 指向右上方 2 距离公式 3 函数间隔 当w确定的时候 距离的远近可以比较分子 也就是说
  • python实用脚本(一)—— 批量修改目标文件夹下的文件名

    本期主题 python重命名文件脚本 批量修改某一文件夹下的后缀名 脚本 1 代码 2 使用 3 简单解析 1 代码 usr bin python3 coding utf 8 批量修改文件扩展名 import argparse import
  • python语言整理

    目录 一 python 1 python的基础语法 1 python的介绍 2 python的注释方法 1 单行注释 2 多行注释 三个单引号 或者三个双引号 3 python的数据类型 4 面向对象 2 python的构造函数 1 pyt
  • 【论文整理1】On the Continuity of Rotation Representations in Neural Networks

    1 前置知识 1 1 Gram Schmidt正交化 参考阅读 Gram Schmidt过程 看完这篇应该基本能理解 但是他对于公式的讲解有一个地方讲解得不是很清楚 即为什么分母是平方形式呢 1 2 差集 定义 差集是一种集合运算 记A B
  • Pytest自动化测试框架之Allure报告

    简介 Allure Framework是一种灵活的 轻量级 多语言测试报告工具 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息和测试 从开发 测试的角度来看 Allu
  • 9.14 C++作业

    仿照vector手动实现自己的myVector 最主要实现二倍扩容功能 include
  • 浅尝MVVMLight…

    最近要写WPF技术的项目 所以要学习一下关于WPF的知识 今天呢了解了一下MVVM的知识 具体内容如下了 MVVM呢是Model View ViewModel的缩写了 MVVM的由来算是有MVP Model View Presenter 模
  • 计算机专硕自主命题的学校,这所计算机/软件都是B+的知名985大学,计算机专硕改为408!...

    复旦大学是上海的一所985大学 计算机学科评估是B 软件工程的的学科评估也是B 从往年来看 也吸引了不少同学报考 尤其是计算机专硕 自主命题 招人很多 虽然一年多之前有消息说不提供住宿 但是报考的人还是络绎不绝 但是 今年 复旦大学的计算机
  • BZOJ4347 [POI2016]Nim z utrudnieniem

    这题 挺厉害 我们可以用f i j k 表示前i个数 选的个数模d余j 异或和为k的方案数 我们要求的是f n 0 s s为所有数的异或和 另外在n是d的倍数的时候要减一 可是这样直接转移的话显然会超时 我们把所有权重从小到大排序 一个数和
  • 时序分解

    时序分解 MATLAB实现基于SVD奇异值分解的信号分解分量可视化 目录 时序分解 MATLAB实现基于SVD奇异值分解的信号分解分量可视化 效果一览 基本介绍 程序设计 参考资料 效果一览 基本介绍 SVD分解重构算法 MATLAB程序
  • CentOS 7中 rsync 备份数据使用实例

    rsync工具用于将文件和目录从一个位置同步到另一个位置 同步的位置可以在本地服务器或远程服务器上 在Centos中使用下面命令安装rsync 对于负荷较重的 rsync 服务器应该使用独立运行方式 yum install rsync xi
  • leaflet的基础用法

    leaflet的基础知识 1 divIcon自定义图标 var myIcon L divIcon className my div icon L marker 50 505 30 57 icon myIcon addTo map 2 fea
  • 【牛客网】 排序子序列

    时间限制 1秒 空间限制 32768K 牛牛定义排序子序列为一个数组中一段连续的子序列 并且这段子序列是非递增或者非递减排序的 牛牛有一个长度为n的整数数组A 他现在有一个任务是把数组A分为若干段排序子序列 牛牛想知道他最少可以把这个数组分