zoukankan      html  css  js  c++  java
  • 连续非递减子序列

    描述

     一个序列中的元素a1,a2,...,an,若满足a1<=a2<=...<=an,则称该序列为非递减序列。

    现给定一个序列,问该序列最少可以分割为多少个连续的非递减子序列。

    比如:

    1 2 5 3 4

    可以分割为两个非递减子序列1 2 5和3 4。

    而:

    5 4 3 2 1

    则只能分割为5个非递减子序列,每个子序列长度均为1。

    输入

    输入第一行为正整数n(n<=100),

    第二行有n个整数,为组成的序列元素。

    输出

    输出最少分割的连续非递减子序列个数。

    样例输入

    样例输出

     

    分析:找最少的连续非递减子序列,那么就是最多的递减子序列,所以,从前往后遍历只要递减,便加1,至少有一个

    代码如下:

    #include <iostream>
    using namespace std;
    int a[101];
    int main()
    {
        int n,m=1,j,i;
        cin>>n;
        for(i=0;i<n;i++)
        {
            cin>>a[i];
        }
        for(i=1;i<n;i++)
        {
            if(a[i]<a[i-1])
            {
                m++;
            }
        }
        cout<<m<<endl;
    }
  • 相关阅读:
    PDIUSBD12指令
    (转)USB的VID和PID,以及分类(Class,SubClass,Protocol)
    静态测试
    一种循环buffer结构
    RL78 芯片复位指令
    XModem协议
    位反转的最佳算法
    CCP 协议
    AUTOSAR 架构
    HEX 文件格式
  • 原文地址:https://www.cnblogs.com/andrew3/p/9607619.html
Copyright © 2011-2022 走看看