本题考察的是差分的思想。
设 b[i]=a[i]-a[i-1]
因为我们要想让其所有的数字都相等。故即b[2],b[3].......b[n]都得为0才行。
此时数组所有的数的值都是b[1]。
因为我们的差分操作是每次选两值,让其一个加1,一个减1,基于贪心的思想正负数相互结合。
剩下的即为同符号的数。
设b[2]…b[n]中正数的和为sum1,负数的和为sum2
故最少的操作次数就是max( sum1, abs(sum2) )
那么结果的种类为,其实结果的种类就是b[1]的取值有多少个,可以得出有abs(sum1)-abs(sum2)种情况再加上b[1]不变本身的这种情况
故一共有abs(abs(sum1)-abs(sum2))+1种.

举一个最简单的例子。假如上面的正负数结合后还有一个正数3未解决。
那么可以 b[1]不变,让3和 b[n+1]结合
可以让b[1]变1次,让2和 b[n+1]结合
可以让b[1]变2次,让1和 b[n+1]结
可以让b[1]变3次,让0和 b[n+1]结
故b[1]一共有四种结果

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long int LL;
LL a[N],b[N],n;
LL sum1,sum2;
int main(void)
{cin>>n;for(int i=1;i<=n;i++) cin>>a[i],b[i]=a[i]-a[i-1];for(int i=2;i<=n;i++)if(b[i]>=0) sum1+=b[i];else sum2+=b[i];cout<<max(sum1,abs(sum2))<<endl;cout<<abs(abs(sum1)-abs(sum2))+1<<endl;return 0;
}

100. 增减序列【差分 / 思维】相关推荐

  1. AcWing 100. 增减序列

    题目 给定一个长度为 n 的数列 a1,a2,-,ana_1,a_2,-,a_na1​,a2​,-,an​,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一. 求至少需要多少次 ...

  2. 《预训练周刊》第16期:中科院推出全球首个图文音三模态预训练模型、顶会论文探索100层序列推荐模型的加速训练...

    No.16 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第16期&l ...

  3. CH - 0304 IncDec Sequence(差分+思维)

    题目链接:点击查看 题目大意:给定一个长度为 n(n≤10^5 ) 的数列 {a_1,a_2,-,a_n},每次可以选择一个区间 [l,r],使下标在这个区间内的数都加一或者都减一.求至少需要多少次操 ...

  4. 【无码专区7】括号序列(思维)

    因为只有std,没有自我实现,所以是无码专区 主要是为了训练思维能力 solution才是dls正解,但是因为只有潦草几句,所以大部分会有我自己基于正解上面的算法实现过程,可能选择的算法跟std中dl ...

  5. CodeForces - 1000C Covered Points Count(差分+思维)

    题目链接:点击查看 题目大意:给出n个区间,现在要求输出覆盖次数为1,2,3....n-1,n的点分别有多少个 题目分析:一开始看到区间问题想用线段树去做,但想了想又可以直接用差分去做,不过因为数比较 ...

  6. AT2005-[AGC003E]Sequential operations on Sequence【差分,思维】

    正题 题目链接:https://www.luogu.com.cn/problem/AT2005 题目大意 开始有一个1∼n1\sim n1∼n依次排列的序列,然后QQQ次,第iii次把序列长度变为ai ...

  7. matlab编写长度为100矩形序列,18春[华中师范大学]华师《Matlab基础与应用》在线作业(100分)...

    试卷总分:100    得分:100 第1题,下面程序执行后array的值为( ). For k=1:10 If k6 Break; Else Array(k)=k; End end A.array= ...

  8. AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...

  9. Codeforces Round #590 (Div. 3) E. Special Permutations 差分 + 思维

    传送门 文章目录 题意: 思路: 题意: 思路: 直接考虑比较难想,这种公式题基本都是将部分答案看成一个整体,考虑xi,xi+1x_i,x_{i+1}xi​,xi+1​的贡献的. 假设当前的xi=x, ...

最新文章

  1. pygame加载MP3音乐
  2. 多看看 leetcode 128. 最长连续序列
  3. docker对aufs触发的bug
  4. 【ubuntu】ubuntu18.04:在处理时有错误发生:ufw E: Sub-process /usr/bin/dpkg returned an error code (1)
  5. Java编程中最容易踩雷的地方!
  6. Kafka系列2-producer和consumer报错
  7. 奇妙的 CSS shapes(CSS图形)
  8. 重学TCP协议(3) 端口号及MTU、MSS
  9. Openstack的RPC通信代码调用架构
  10. SQl---基础整理6--数据库的创建
  11. atitit.薄伽梵歌overview  attilax 读后感
  12. OSPF不规则区域,远离Area 0的区域连通性解决方案
  13. mac PHP 环境搭建
  14. label标签 for属性
  15. 手机安装证书时候弹出输入证书密码
  16. ATMEGA128——初探
  17. 计算机3大总线名词解释,计算机名词解释-- 总线.doc
  18. 编程常用小技巧(持续更新~)
  19. 实时数据缓存管理的初步设计
  20. Skyscrapers (hard version)(1900/单调栈)

热门文章

  1. javascript下載csv檔案
  2. JavaScipt30(第三个案例)(主要知识点:css变量)
  3. Windows 10 LTSC添加UWP支持
  4. springMVC自定义方法属性解析器
  5. 函数中返回char *类型
  6. iOS9.2 xcode 7.1.1真机测试
  7. HDU Senior's Gun (水题)
  8. Web服务的体系架构
  9. C# 3.0实现类本身的方法扩展
  10. C#网络编程:4订立协议和发送文件