【BZOJ1811】[Ioi2005]mea

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

题解:显然只要S1确定了,那么其他所有数都确定了。那么我们将所有数都用S1表示,显然,当i为奇数时,Si可以表示成$(M_1-M_2+M_3-...+M_{i-1})\times 2 - S_1$,当i为偶数时,$S_i=(-M_1+M_2-M_3+...+M_{i-1})+S_1$。又因为$S_{i-1}<S_i$,所以我们相当于得到了n个一元一次不等式,求出不等式组的解即可。

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
typedef long long ll;
const int maxn=5000010;
int n;
ll l,r;
ll s[maxn];
inline int rd()
{
int ret=0,f=1; char gc=getchar();
while(gc<'0'||gc>'9') {if(gc=='-')f=-f; gc=getchar();}
while(gc>='0'&&gc<='9') ret=ret*10+gc-'0',gc=getchar();
return ret*f;
}
int main()
{
n=rd(),l=-1ll<<40,r=1ll<<40;
int i;
for(i=1;i<=n;i++)
{
s[i]=-s[i-1]+(rd()<<1);
if(i&1) r=min(r,(s[i]-s[i-1])>>1);
else l=max(l,(s[i-1]-s[i])>>1);
}
printf("%lld",max(r-l+1,0ll));
return 0;
}

【BZOJ1811】[Ioi2005]mea 乱搞的更多相关文章

  1. [bzoj1811] [Ioi2005]mea

    还是比较好想到的..设第一个数为x,那么以后的所有数都能用x和M表示出来. 然后再根据非递减的限制条件得出x的取值范围. #include<cstdio> #include<iost ...

  2. bzoj 1811: [Ioi2005]mea 贪心,乱搞

    [Ioi2005]mea Time Limit: 20 Sec  Memory Limit: 64 MBSubmit: 690  Solved: 257[Submit][Status][Discuss ...

  3. URAL 1827 Indigenous Wars(排序、乱搞)

    题意:给一个长度为n数组{a[i]}.有m个操作Ti,Si,Li表示找以Ti值结束,以Si值开始,长度为Li的连续子串.找到后,将区间的答案值设为1.一开始答案值全部为0.最后输出n个答案值. 好久没 ...

  4. UVA 11853 [dfs乱搞]

    /* 大连热身E题 不要低头,不要放弃,不要气馁,不要慌张 题意: 在1000×1000的格子内有很多个炮弹中心,半径给定. 为某人能否从西部边界出发,从东部边界走出. 不能输出不能,能的话输出最北边 ...

  5. Codeforces 732e [贪心][stl乱搞]

    /* 不要低头,不要放弃,不要气馁,不要慌张 题意: 给n个插座,m个电脑.每个插座都有一个电压,每个电脑都有需求电压. 每个插座可以接若干变压器,每个变压器可以使得电压变为x/2上取整. 有无限个变 ...

  6. 【BZOJ-4692】Beautiful Spacing 二分答案 + 乱搞(DP?)

    4692: Beautiful Spacing Time Limit: 15 Sec  Memory Limit: 128 MBSubmit: 46  Solved: 21[Submit][Statu ...

  7. 【BZOJ-3578】GTY的人类基因组计划2 set + map + Hash 乱搞

    3578: GTY的人类基因组计划2 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 367  Solved: 159[Submit][Status][ ...

  8. 【BZOJ-2937】建造酿酒厂 前缀和 + 展环为链 + 乱搞

    2937: [Poi2000]建造酿酒厂 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 70  Solved: 24[Submit][Status][D ...

  9. SCOI 2013 密码 & 乱搞

    题意: Fish 是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.通过翻阅古籍,Fish 得知了这个密码的相关信息:1. 该密 ...

随机推荐

  1. 【DP】UVA 624 CD 记录路径

    开一个数组p 若dp[i-1][j]<dp[i-1][j-a[i]]+a[i]时就记录下p[j]=a[i];表示此时放进一个轨道 递归输出p #include <stdio.h> # ...

  2. Ubuntu——修正LibreOffice中文乱码以及eclipse提示框颜色

    刚进ubuntu的时候就老遇到用libreoffice打开某些文档时出现一堆叠在一起的乱码.以及最開始使用eclipse编辑时,鼠标放到一个变量或者函数时 弹出来一黑框框-看的难受的.... 这里记录 ...

  3. C语言文件操作函数大全(超详细)

    C语言文件操作函数大全(超详细) 作者: 字体:[增加 减小] 类型:转载 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下   fopen(打开文件)相关函数 open,fc ...

  4. 【Nginx】核心模块ngx_events_module

    核心模块ngx_events_module是一个专门用于管理事件模块的模块. 它的实现非常easy.以下是该模块的定义: ngx_module_t ngx_events_module = { NGX_ ...

  5. cookie 与 session 的差别、联系

    1.存放位置: Session 存放在server端. Cookie 存放在client: 2.保存形式: Session保存在server的内存中(在server端设置超时时间,与浏览器设置无关): ...

  6. MySQL 5.6数据导入报 GTID 相关错误

    从阿里云备份数据后还原到本地,用命令行 mysql -uroot -p --default-character-set=<character> -f <dbname> < ...

  7. JPA联合主键@EmbeddedId使用详解附查询例子

    花了2个小时的时间解决这个问题,网上资料太少,记录下     详情看源文件TBicPrmCompute,TBicPrmComputePK package com.isoftstone.core.dom ...

  8. 安装SDK后打开安卓project后有例如以下错误:发现了以元素 &#39;d:skin&#39; 开头的无效内容。此处不应含有子元素。

    Error: Error parsing D:\Program Files\SDK\android-sdk-windows\system-images\android-22\android-wear\ ...

  9. 使用Linux环境变量教程

    什么是环境变量? bash shell用一个叫作环境变量( environment variable)的特性来存储有关shell会话和工作环境的信息(这也是它们被称作环境变量的原因).这项特性允许你在 ...

  10. mysql创建数据库时设置编码方式

    CREATE DATABASE procedure_function DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;