3043: IncDec Sequence

Time Limit: 10 Sec  Memory Limit: 128 MB
Submit: 578  Solved: 325
[Submit][Status][Discuss]

Description

给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一。
问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多少种。

Input

第一行一个正整数n 
接下来n行,每行一个整数,第i+1行的整数表示ai。

Output

第一行输出最少操作次数
第二行输出最终能得到多少种结果

Sample Input

4
1
1
2
2

Sample Output

1
2

HINT

对于100%的数据,n=100000,0<=ai<2147483648

Source

Poetize6

分析:

差分的思想...

考虑在原来的数列中对一个区间$[l,r]+1$,那么就相当于在差分之后的数列上对$l+1$对$r+1$进行$-1$操作,所以我们可以统计出差分之后的数列中的正数和负数,正数和负数可以相消,剩下的数字有两种选择,一种是自己消...一种是和第一个数消...所以最少的次数位$max(positive,negative)$,数列个数就是$abs(positive-negative)+1$...

代码:

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
//by NeighThorn
using namespace std; const int maxn=100000+5; int n,a[maxn];
long long pos,neg; signed main(void){
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<n;i++)
if(a[i]<a[i+1]) pos+=a[i+1]-a[i];
else if(a[i]>a[i+1]) neg+=a[i]-a[i+1];
printf("%lld\n%lld\n",max(pos,neg),abs(pos-neg)+1);
return 0;
}

  


By NeighThorn

BZOJ 3043: IncDec Sequence的更多相关文章

  1. bzoj 3043: IncDec Sequence 模拟

    3043: IncDec Sequence Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 248  Solved: 139[Submit][Statu ...

  2. BZOJ 3043 IncDec Sequence:反向差分

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3043 题意: 给定一个长度为n的数列a[i],每次可以选择一个区间[l,r],使这个区间内 ...

  3. BZOJ 3043: IncDec Sequence 差分 + 思维

    Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) ...

  4. 【BZOJ 3043】 3043: IncDec Sequence (差分)

    3043: IncDec Sequence Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 589  Solved: 332 Description 给 ...

  5. Poetize6: IncDec Sequence

    3043: IncDec Sequence Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 233  Solved: 132[Submit][Statu ...

  6. 前缀和与差分之IncDec sequence

    参考链接:https://blog.csdn.net/hzk_cpp/article/details/80407014 题目链接:https://www.acwing.com/problem/cont ...

  7. BZOJ 1367 [Baltic2004]sequence 解题报告

    BZOJ 1367 [Baltic2004]sequence Description 给定一个序列\(t_1,t_2,\dots,t_N\),求一个递增序列\(z_1<z_2<\dots& ...

  8. 【BZOJ3043】IncDec Sequence 乱搞

    [BZOJ3043]IncDec Sequence Description 给定一个长度为n的数列{a1,a2...an},每次可以选择一个区间[l,r],使这个区间内的数都加一或者都减一.问至少需要 ...

  9. 2498 IncDec Sequence

    2498 IncDec Sequence  时间限制: 1 s  空间限制: 64000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 给 ...

随机推荐

  1. 更改yum网易、阿里云的yum源

    更改yum源为网易的. 首先备份/etc/yum.repos.d/CentOS-Base.repomv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos ...

  2. python字典按照k,v来排序

    按照 k 排序 按照 v 排序

  3. 二、Linux 系统启动过程

    Linux 系统启动过程 linux启动时我们会看到许多启动信息. Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导. 运行 init. 系统初始化. 建立终端 ...

  4. 使用eclipse导入web项目

    第一步 第二步 第三步 第四步 最后就多了一个web项目

  5. JZOJ 4421. aplusb

    4421. aplusb Time Limits: 1000 ms  Memory Limits: 524288 KB  Detailed Limits   Goto ProblemSet Descr ...

  6. centos7安装phpstudy

    操作系统:CentOS 7 x86_64 SSH登录工具:FinalSHell 2.9.7 一.安装phpstudy 1.下载完整版: wget -c http://lamp.phpstudy.net ...

  7. psutil模块的基础使用

    注:Python并没有自带psutil模块,需要自己去安装 安装psutil模块 pip install psutilorpip3 install psutil 一.导入模块 import psuti ...

  8. I miss you, Jenny【我想念你,jenny】

    I miss you, Jenny Forrest Gump: 阿甘正传 You died on a Saturday morning. And I had you placed here our t ...

  9. [bzoj1912]异象石(set)

    Description Adera是Microsoft应用商店中的一款解谜游戏. 异象石是进入Adera中异时空的引导物,在Adera的异时空中有一张地图.这张地图上有N个点,有N-1条双向边把它们连 ...

  10. python-PIL模块的使用

    PIL基本功能介绍 from PIL import Image from PIL import ImageEnhance img = Image.open(r'E:\img\f1.png') img. ...