题意:给定一个序列,可以对一个区间进行加1或减1的操作,问最少需要多少次可以将序列的值一样.

Solution

我们将序列差分,得到一个差分数组。

对于每一个区间操作,我们可以把它转化为在查分数组上某个位置+1,某个位置-1,范围1-n+1。

目标是除了第一个数之外其他数都为零(这样所有前缀和都相等,满足所有数字都一样的条件)。

(既然不管第一个数,那我们干脆从2开始差分就好了。)

那我们把正数和负数对着消,最后会剩下一些数。

对于这些数,我们有两种选择,一个是和一消,一个是和n+1消。

所以次数是max(正查分和,负差分和)种类数就是(abs(正查分和-负差分和)+1)

Code

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#define N 100002
using namespace std;
typedef long long ll;
ll a[N],ans1,ans2,ans3;
int n;
int main(){
scanf("%d",&n);
for(int i=;i<=n;++i)scanf("%lld",&a[i]);
for(int i=;i<=n;++i){
ll c=a[i]-a[i-];
if(c>)ans1+=c;
else ans2-=c;
}
ans3=max(ans1,ans2);
printf("%lld\n%lld",ans3,abs(ans1-ans2)+);
return ;
}

IncDec Sequence(差分)的更多相关文章

  1. 【bzoj3043】IncDec Sequence 差分

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

  2. 差分:IncDec Sequence 差分数组

    突然就提到了这个东西,为了不再出现和去年联赛看见二分没学二分痛拿二等第一的情况,就去学了一下,基础还是比较简单的-- 先看一个经典例题: 给定一个长度为n的数列{a1,a2...an},每次可以选择一 ...

  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. 【BZOJ3043】IncDec Sequence 乱搞

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

  8. BZOJ 3043: IncDec Sequence

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

  9. 2498 IncDec Sequence

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

  10. CH-0304 IncDec Sequence

    0304 IncDec Sequence 0x00「基本算法」例题 描述 给定一个长度为 n(n≤10^5 ) 的数列 {a_1,a_2,…,a_n},每次可以选择一个区间 [l,r],使下标在这个区 ...

随机推荐

  1. rem 适配

    postcss-pxtorem 是一款 postcss 插件,用于将单位转化为 rem lib-flexible 用于设置 rem 基准值 一.webpact postcss 插件将px转化为rem单 ...

  2. 通过爬虫程序深入浅出java 主从工作模型

    随手做的爬虫程序在   https://github.com/rli07/master_java/blob/master/spider.zip  可下载. 这是我做的系统学习图, 可以参考一下 系统架 ...

  3. Oracle 同义词(Synonym)

    同义词(Synonym)是表.索引.视图等模式对象的一个别名.通过模式对象创建同义词,可以隐藏对象的实际名称和所有者信息,隐藏分布式数据库中远程对象的设置信息,由此为对象提提供一定的安全性保证.同义词 ...

  4. [转帖]Docker的daemon.json的作用

    Docker(十六)-Docker的daemon.json的作用 https://www.cnblogs.com/zhuochong/p/10070434.html jfrog 培训的时候 说过这个地 ...

  5. ORA-12541:TNS:无监听程序 解决办法

    昨天我在一台win7笔记本中安装了oracle11g,然后打算用另一个win10的笔记本使用plsql developer局域网内连接访问oracle数据库.但是遇到ORA-12541:TNS:无监听 ...

  6. mybtis逆向工程实战教程--条件查询

    mabitis逆向工程进行条件查询:

  7. python之路--MySQL多表查询

    一 介绍 我们在写项目的时候一般都会建一个数据库,数据库里面会存很多的表,不可能把所有的数据都放在一张表里,因为分表来存数据节省空间,数据的组织结构更清晰,解耦和程度更高,但是这些表本质上还不是一个整 ...

  8. python之路--网络编程之socket

    一 . 网络编程 CS架构 客户端服务端架构 服务端:提供服务的 客户端:享受服务的 BS架构:浏览器和服务端 网络通信流程: 集线器:将所有连接上它的电脑全部联通起来 交换机:升级版的集线器 网卡: ...

  9. linux命令logger使用

    先从别的地方抄过来全部的解释,如下: **options (选项):** -d, --udp 使用数据报(UDP)而不是使用默认的流连接(TCP) -i, --id 逐行记录每一次logger的进程I ...

  10. tensorflow点滴笔记

    1.模型保存 模型保存需要使用函数 tf.train.Saver(), a)创建saver时,可以指定需要存储的tensor,如果没有指定,则全部保存. b) 创建saver时,可以指定保存的模型个数 ...