zoukankan      html  css  js  c++  java
  • 蓝桥杯——连号区间数(暴力)

    题目:http://lx.lanqiao.cn/problem.page?gpid=T30

    分析:注意到输入格式里介绍“第二行是N个不同的数字Pi(1 <= Pi <= N)”,这里就可以知道第二行的数由1,2,3······N-1,N组成,虽然此题不用到这个,但以后也要有这个觉悟,阅读题目要仔细,避免题目复杂化。其实这一题,要知道[L, R]是不是连号区间,判断max-min==R-L就可以了(max、min分别是区间[L, R]最大值和最小值)。

    如: 1   2   3   4(数组下标)

            3   2   1  4(a[i])

    区间[1,3]很明显是连号区间(递增排序后连续),此时 max-min=3-1=2,R-L=3-1=2。


    代码(c):

    #include<stdio.h>
    int main()
    {
        int i,j,n,a[50005],max,min,count=0;
        scanf("%d",&n);
        for(i=1; i<=n; i++)
        {
            scanf("%d",&a[i]);
        }
        for(i=1; i<=n; i++)
        {
            max=a[i];
            min=a[i];
            for(j=i; j<=n; j++)
            {
                if(max<a[j])
                    max=a[j];//max、min分别永远记录最大值和最小值
                if(min>a[j])
                    min=a[j];
                if((max-min)==(j-i))
                    count++;
            }
        }
        printf("%d",count);
        return 0;
    }
  • 相关阅读:
    HIHO线段树(成段)
    HIHO 线段树(单点)
    POJ 3468
    HDU 1754
    HDU 1698
    HDU 5119
    HDU 1394
    HDU 1166
    DZY Loves Chessboard
    谷歌Cookies无法写入
  • 原文地址:https://www.cnblogs.com/li-yaoyao/p/10011722.html
Copyright © 2011-2022 走看看