zoukankan      html  css  js  c++  java
  • hdu5247找连续数(打表)

    题意(中问题直接粘题意吧)
                                    找连续数


    Problem Description
    小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的。


    现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间。


    Input
    输入包含一组测试数据。


    第一行包含两个整数n,m,n代表数组中有多少个数字,m 代表针对于此数组的询问次数,n不会超过10的4次方,m 不会超过1000。第二行包含n个正整数,第 I 个数字代表无序数组的第 I 位上的数字,数字大小不会超过2的31次方。接下来 m 行,每行一个正整数 k,含义详见题目描述,k 的大小不会超过1000。


     
    Output
    第一行输"Case #i:"。(由于只有一组样例,只输出”Case #1:”即可)


    然后对于每个询问的 k,输出一行包含一个整数,代表数组中满足条件的 k 的大小的区间的数量。


     


    Sample Input
    6 2
    3 2 1 4 3 5
    3
    4
     


    Sample Output
    Case #1:
    2
    2


    思路:

          比较简单吧,直接mark[i][j]表示第i个开头连续j个是否是满足连续的,如果是,那么ans[j]++,如果不是那么看情况,如果有重复那么往后就不用找了没直接i++,否则继续找就行了,判断当前是不是满足要求也好办,直接最大值-最小值如果等于区间长度同时没有重复就行了,O(n^2)打表然后O(1)输出就行了。


    #include<stdio.h>
    #include<string.h>
    
    int main ()
    {
        bool mark[1001];
        short int num[10001] ,mkans[1005];
    
        int n ,m ,i ,j ,k;
        scanf("%d %d" ,&n ,&m);
        for(i = 1 ;i <= n ;i ++)
        scanf("%d" ,&num[i]);
        memset(mkans ,0 ,sizeof(mkans));
        for(i = 1;i <= n ;i ++)
        {
            memset(mark ,0 ,sizeof(mark));
            int max = num[i] ,min = num[i];
            mkans[1] ++;
            mark[num[i]] = 1;
            for(j = i + 1 ;j <= n;j ++)
            {
                if(max < num[j]) max = num[j];
                if(min > num[j]) min = num[j];
                if(mark[num[j]]++) break;
                if(max-min+1 > 1000) break;
                if(max - min == j - i) mkans[max-min+1]++;
            }
        }
        printf("Case #1:
    ");
        while(m--)
        {
            scanf("%d" ,&k);
            printf("%d
    " ,mkans[k]);
        }
        return 0;
    }
    



  • 相关阅读:
    如何快速发现网站恶意镜像与网页劫持?
    最牛「CSRF防护」,带你进入大虾们的圈子!
    安全无小事:如何给企业用户数据上把锁?
    PHP 7 探针的安装与测试
    如何使用 Docker、ECS、Terraform 重建基础架构?
    应用安全技术趋势之 Top 5
    第77节:Java中的事务和数据库连接池和DBUtiles
    第76节:Java中的基础知识
    第76节:Java中的基础知识
    第75节:Java的中的JSP,EL和JSTL
  • 原文地址:https://www.cnblogs.com/csnd/p/12062407.html
Copyright © 2011-2022 走看看