当前位置: 首页 > news >正文

南宁市建设信息网站短链接生成器

南宁市建设信息网站,短链接生成器,网页设计速成班培训,大连中山区网站建设题目描述 给定一个长度为 n 的数列 a_1,a_2,...,a_n,每次可以选择一个区间[l,r],使这个区间内的数都加 1 或者都减 1。 请问至少需要多少次操作才能使数列中的所有数都一样,并求出在保证最少次数的前提下,最终得到的数列有多…

题目描述

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1
4
1
1
2
2

样例输出 #1
1
2

提示

对于 100% 的数据,n<= 100000, 0 <= a_i <= 2^31。

代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
typedef long long LL;  // 定义 long long 类型的别名为 LL
LL n, c, p, q, a[100010];  // 声明变量int main()
{cin >> n;  // 输入数组的长度 nfor (int i = 1; i <= n; i++){scanf("%lld", &a[i]);  // 输入数组的元素}for (int i = 2; i <= n; i++)  // 从第二个元素开始遍历数组{c = a[i] - a[i - 1];  // 计算相邻元素之间的差值if (c > 0)  // 如果差值大于 0,说明需要增加操作{p += c;  // 累加增加操作次数}else  // 否则,需要减少操作{q -= c;  // 取反后累加减少操作次数}}LL ans1 = max(p, q);  // 找到增加和减少操作次数中的较大值,作为最少操作次数LL ans2 = abs(p - q) + 1;  // 计算操作次数之差的绝对值加 1,作为最终可能的结果种数cout << ans1 << endl << ans2;  // 输出最少操作次数和结果种数return 0;  // 程序结束
}

http://www.ds6.com.cn/news/118943.html

相关文章:

  • 一个网站突然打不开廊坊seo排名优化
  • 兴文县建设工程网站百度帐号管家
  • 浙江龙泉建设局网站百度商家怎么入驻
  • 河北 网站建设品牌策划方案怎么做
  • 做问卷调查赚钱网站好优化大师是什么软件
  • 哪个素材网站比较好用广州seo网站服务公司
  • 网站建设东北北京网优化seo公司
  • 乐从网站建设企业营销策划书模板
  • wordpress自定义分类目录seo代码优化步骤
  • 网站优化推广seo全网引流推广
  • wordpress制作企业网站软文编辑器
  • asp.net mvc 做网站开鲁网站seo不用下载
  • 手表网站十大品牌品牌如何做推广
  • 零基础做网站教程目前疫情最新情况
  • 北京高端网站定制公司优化营商环境条例
  • 自己做网站的流程下载草根seo视频大全网站
  • 营销型网站建设思路百度做广告怎么收费
  • 网站建立于网页设计seo sem论坛
  • wordpress部署篇嘉兴seo网络推广
  • 大港做网站重庆seo网络推广
  • 家庭电脑可以做网站吗甘肃seo网站
  • wordpress 过滤seo关键词优化怎么收费
  • 把网站放到服务器seo排名优化哪家好
  • 淄赌博做网站江北seo综合优化外包
  • 利用python做网站网站建设优化400报价
  • 做网站的团队百度推广怎么做的
  • 网站是请网络公司制作的请问我该怎样获得并确定网站的所有权?优化营商环境条例
  • 常州网站建设团队让手机变流畅的软件下载
  • 政府网站建设发展规划在哪个网站可以免费做广告
  • 深圳网站建设手机网站建设代刷网站推广