zoukankan      html  css  js  c++  java
  • 51nod 2502 最多分成多少块

    小b有个长度为n的数组a,她想将这个数组排序。

    然而小b很懒,她觉得对整个数组排序太累了,因此她请你将a分成一些块,使得她只需要对每一块分别排序,就能将整个数组排序。

    请问你最多能把a分成多少块。

    保证a为0...n-1的一个排列。

    样例解释:

    将a分成2块或者更多块,都无法得到所需的结果。
    例如,分成 [4, 3], [2, 1, 0] ,排序得到的结果是 [3, 4, 0, 1, 2],这不是有序的数组。
     

    输入

    第一行一个数n;
    第二行n个数表示a[i],以空格隔开。
    n<=10

    输出

    输出一个数表示划分块的数量

    输入样例

    5
    4 3 2 1 0

    输出样例

    1


    如果i-j可以分为一块,那么这块里的最小是i最大是j。
    代码:
    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <vector>
    
    using namespace std;
    int n,c,d;
    int s[10];
    int main() {
        scanf("%d",&n);
        for(int i = 0;i < n;i ++) {
            scanf("%d",&d);
            if(i) s[i] = max(d,s[i - 1]);
            else s[i] = d;
            if(s[i] == i) c ++;
        }
        printf("%d",c);
    }
  • 相关阅读:
    Memcached: 目录
    Memcached: temple
    Redis: Redis支持五种数据类型
    互联网市场
    java实现猜生日
    java实现汉诺塔计数
    java实现汉诺塔计数
    java实现汉诺塔计数
    java实现汉诺塔计数
    java实现汉诺塔计数
  • 原文地址:https://www.cnblogs.com/8023spz/p/10988449.html
Copyright © 2011-2022 走看看