• codeforce -602B Approximating a Constant Range(暴力)


    B. Approximating a Constant Range
    time limit per test
    2 seconds
    memory limit per test
    256 megabytes
     

    When Xellos was doing a practice course in university, he once had to measure the intensity of an effect that slowly approached equilibrium. A good way to determine the equilibrium intensity would be choosing a sufficiently large number of consecutive data points that seems as constant as possible and taking their average. Of course, with the usual sizes of data, it's nothing challenging — but why not make a similar programming contest problem while we're at it?

    You're given a sequence of n data points a1, ..., an. There aren't any big jumps between consecutive data points — for each 1 ≤ i < n, it's guaranteed that |ai + 1 - ai| ≤ 1.

    A range [l, r] of data points is said to be almost constant if the difference between the largest and the smallest value in that range is at most 1. Formally, let M be the maximum and m the minimum value of ai for l ≤ i ≤ r; the range [l, r] is almost constant if M - m ≤ 1.

    Find the length of the longest almost constant range.

    Input

    The first line of the input contains a single integer n (2 ≤ n ≤ 100 000) — the number of data points.

    The second line contains n integers a1, a2, ..., an (1 ≤ ai ≤ 100 000).

    Output

    Print a single number — the maximum length of an almost constant range of the given sequence.

    Sample test(s)
    input
    5
    1 2 3 3 2
    output
    4
    input
    11
    5 4 5 5 6 7 8 8 8 7 6
    output
    5
    Note

    In the first sample, the longest almost constant range is [2, 5]; its length (the number of data points in it) is 4.

    In the second sample, there are three almost constant ranges of length 4: [1, 4], [6, 9] and [7, 10]; the only almost constant range of the maximum length 5 is [6, 10].

    题意是,找连续的并且任意两个数相差不超过1的最长串。

    思路:题中说相邻的两个数相差不超过1;

    那么cnt最小为2,cnt赋初值2;由于要相差不超过一,所以每个串的最大值最小值相差不能超过一,

    那么从第三个元素开始,如果abs(a[i]-max)<=1&&abs(a[i]-min)<=1,就cnt++,表示该元素能加入上一个串,因为有新数字加入,所以更新max,和minn.

    如果不符合的话cnt置为2就以a[i],开始向前找串。

     1 #include<stdio.h>
     2 #include<stdlib.h>
     3 #include<algorithm>
     4 #include<iostream>
     5 #include<string.h>
     6 using namespace std;
     7 int a[100005];
     8 int main(void)
     9 {
    10     int n,i,k,p,q,j;
    11     while(scanf("%d",&n)!=EOF)
    12     {
    13         for(i=0; i<n; i++)
    14         {
    15             scanf("%d",&a[i]);
    16         }
    17         int maxx,minn;
    18         maxx=max(a[0],a[1]);
    19         minn=min(a[0],a[1]);
    20         int cnt=2;
    21         int sum=2;
    22         int x=maxx,y=minn;
    23         for(i=2; i<n; i++)
    24         {
    25             if(abs(a[i]-maxx)<=1&&abs(a[i]-minn)<=1)
    26             {
    27                 cnt++;
    28                 maxx=max(maxx,a[i]);
    29                 minn=min(a[i],minn);
    30             }
    31             else
    32             {
    33                 cnt=2;
    34                 maxx=max(a[i],a[i-1]);
    35                 minn=min(a[i],a[i-1]);
    36                 for(j=i-2; j>=0; j--)//从后往前找
    37                 {
    38                     if(abs(a[j]-maxx)<=1&&abs(a[j]-minn)<=1)
    39                     {
    40                         cnt++;
    41                         maxx=max(maxx,a[j]);
    42                         minn=min(minn,a[j]);
    43                     }
    44                     else break;
    45                 }
    46             }
    47             if(cnt>sum)
    48             {
    49                 sum=cnt;
    50             }
    51         }
    52         printf("%d
    ",sum);
    53     }
    54     return 0;
    55 }
    油!油!you@
  • 相关阅读:
    luogu P2570 [ZJOI2010]贪吃的老鼠【二分+最大流】
    luogu P5358 [SDOI2019]快速查询【模拟(?)】
    CF360E Levko and Game【贪心+dijsktra】
    bzoj 2632: [neerc2011]Gcd guessing game【贪心】
    bzoj 2535: [Noi2010]Plane 航空管制2【拓扑排序+堆】
    Amazon免费CE2基于docker部署nginx,并实现访问
    使用FlashFXP,密钥方式连接Amazon的CE2实例
    python 提示 AttributeError: module 'json' has no attribute 'dumps'
    ueditor工具栏新增按钮教程
    Express4+Mongodb超简单入门实例
  • 原文地址:https://www.cnblogs.com/zzuli2sjy/p/4995865.html
Copyright © 2020-2023  润新知