zoukankan      html  css  js  c++  java
  • bzoj 1811: [Ioi2005]mea 贪心,乱搞

    [Ioi2005]mea

    Time Limit: 20 Sec  Memory Limit: 64 MB
    Submit: 690  Solved: 257
    [Submit][Status][Discuss]

    Description

    考虑一个非递减的整数序列 S1,....Sn+1(Si<=Si+1 1<=i<=n)。 序列M1...Mn是定义在序列S的基础上,关系式为 Mi=( Si + S(i+1) )/2, 1<=i<=n, 序列M叫做序列S的平均数序列。例如序列1,2,2,4的平均数序列为 1.5,2,3.注意到平均数序列中的元素可能为小数。但是本题的任务只是处理平均数序列都为整数的情况。 给出一个n个数字的非递减的整数序列M1,M2...Mn.请你计算出:序列S,S1...S(n+1)的平均序列是M1,...,Mn。 求满足以上条件的序列S的总个数。 任务: * 从标准输入文件中读入一个非递减的整数序列。 * 计算出平均序列是给出序列的整数序列的总个数。 * 把计算结果写到标准输出文件中。

    Input

    输入文件的第一行包含一个整数n(2<=n<=5 000 000).接下来的n行包含了这个给出的整数序列M1,..,Mn. 第i+1行包含一个整数Mi(1<=mi<=1000000000).对于本题,50%的测试数据中n<=1000,0<=Mi<=20000.

    Output

    输出文件仅一行,即所求答案。

    Sample Input

    3
    2
    5
    9

    Sample Output

    4

    HINT

    本题一共存在4种序列, 他们的平均数序列都是2,3,9。这四种序列如下:
    * 2,2,8,10
    * 1,3,7,11
    * 0,4,6,12
    *-1,5,5,13

    Source

     题解:这道题目可以用两个指针来卡
       

       比如说这个图,可以用两个指针来卡,最小的波动范围即为答案。

     1 #include<cstring>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<iostream>
     5 #include<cmath>
     6 #include<queue>
     7 
     8 #define N 5000007
     9 using namespace std;
    10 inline int read()
    11 {
    12     int x=0,f=1;char ch=getchar();
    13     while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
    14     while(isdigit(ch)){x=(x<<1)+(x<<3)+ch-'0';ch=getchar();}
    15     return x*f;
    16 }
    17 
    18 int n,l,r,L,R;
    19 int a[N];
    20 
    21 int main()
    22 {
    23     n=read(),L=l=a[1]=read(),R=r=a[2]=read();
    24     for (int i=3;i<=n;i++)
    25     {
    26         a[i]=read();
    27         int k=a[i]-a[i-1];
    28         if (i&1)
    29         {
    30             L=R-k;
    31             l=max(l,L);
    32         }
    33         else
    34         {
    35             R=L+k;
    36             r=min(r,R);
    37         }
    38     }
    39     if (r-l<0) puts("0");
    40     else printf("%d
    ",r-l+1);
    41 }
  • 相关阅读:
    POJ1251 Jungle Roads 【最小生成树Prim】
    聪明的kk
    日积月累:weightSum和layout_weight属性合用
    ubuntu 下舒畅的使用libreoffice
    maple 教程
    龙、虎、鲸书杂谈
    百度没出新算法之前这样的最好的的优化方案
    DWR入门实例(二)
    Android应用公布的准备——生成渠道包
    leetcode第一刷_Spiral Matrix II
  • 原文地址:https://www.cnblogs.com/fengzhiyuan/p/8847539.html
Copyright © 2011-2022 走看看