IncDec序列


title: IncDec序列
date: 2023-12-14 21:10:36
tags: 差分
categories: 算法进阶指南

—>传送门

题目大意

在这里插入图片描述

解题思路

区间操作,可以考虑差分。观察发现,最终变成相同的数,相当于相邻的两个数之差为 0 0 0,因此我们使用差分。先求出差分数组 b b b,分别统计正数和负数的大小。我们有四种操作:

  1. b i b_i bi b j b_j bj,会改变 ( i , j ) (i,j) (i,j) 内的大小
  2. b 1 b_1 b1 b j b_j bj,会改变 ( 1 , j ) (1,j) (1,j) 内的大小
  3. b j b_j bj b n + 1 b_{n + 1} bn+1,会改变 ( j , n + 1 ) (j,n + 1) (j,n+1) 内的大小
  4. b 1 b_1 b1 b n + 1 b_{n + 1} bn+1 ,会改变整个数列的大小

可以肯定的是,第四种是无用功,操作是不会改变相对大小,为了让相对大小尽可能的改变,我们最优先才去第一种操作,在一定 区间内 的大小相同的时候,就考虑左端点和右边界的差值以及右端点和左边界的差值,进行 2 、 3 2、3 23 操作。
统计可以得出,最小的操作次数为 m i n ( z , f ) + ∣ z − f ∣ min(z,f) + \vert z - f\vert min(z,f)+zf,其中 f f f 为负数的绝对值。
能产生 ∣ z − f ∣ \vert z - f\vert zf + 1 中不同的 b 1 b_1 b1结果,即方案数。

代码实现

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> PII;const int N = 6E5 + 10, mod = 1e9 + 7;int main()
{int n; cin >> n;vector<int> a(n + 1),b(n + 2);for(int i = 1; i <= n ; i ++){cin >> a[i];}for(int i = n; i >= 1;  i--){b[i] = a[i] - a[i -1 ];}ll z = 0, f = 0;for(int i = 2; i <= n; i ++){if(b[i] > 0) z += b[i];else f += b[i];;}f = -f;;cout << max(z,f) << endl << abs(z - f) + 1 << endl; return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/221812.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快乐数(力扣

bool isHappy(int n) {int num10,temp;while(num--){temp0;while(n){temppow(n%10,2);n/10;}ntemp;if(n1) return true;}return false; }

35、卷积算法总结

前面大概花了 10 几节的篇幅,介绍了卷积这一算法,我觉得是值得的。 因为在CNN网络中,卷积是属于绝对的核心,而且围绕着卷积可衍生出来的算法还有很多,并且卷积的算法思想在很多其他算法中都有体现,比如矩阵乘法、全连接算法。这一节来总结一下这个算法。 卷积算法的参数…

hash累计上文

import hashlib def gen_hash(text):# 创建一个SHA256哈希对象hash_object hashlib.sha256()# 更新哈希对象hash_object.update(text.encode())# 获取哈希值&#xff08;十六进制字符串&#xff09;hex_dig hash_object.hexdigest()return hex_dig# 要计算哈希值的文本 data …

【开题报告】基于SpringBoot的办公消耗品管理系统的设计与实现

1.研究背景 办公消耗品管理系统的设计与实现&#xff0c;是针对当前企业、公司等办公场所对于各种消耗品进行高效管理的需求而提出的。随着企业规模的扩大和办公自动化程度的提高&#xff0c;传统的手工管理已经无法满足日益增长的管理需求。因此&#xff0c;基于SpringBoot的…

.[henderson@cock.li].Devos、[myers@airmail.cc].Devos勒索病毒的最新威胁:如何恢复您的数据?

尊敬的读者&#xff1a; .[hendersoncock.li].Devos、[myersairmail.cc].Devos 勒索病毒的威胁无处不在。通过深入了解其特征、有效的数据恢复方法以及全面的预防措施&#xff0c;我们可以更好地保护自己、家人和企业的数字财产。在网络的战场上&#xff0c;谨慎和预防是我们最…

c语言快速排序(霍尔法、挖坑法、双指针法)图文详解

快速排序介绍&#xff1a; 快速排序是一种非常常用的排序方法&#xff0c;它在1962由C. A. R. Hoare&#xff08;霍尔&#xff09;提的一种二叉树结构的交换排序方法&#xff0c;故因此它又被称为霍尔划分&#xff0c;它基于分治的思想&#xff0c;所以整体思路是递归进行的。 …

vite 中使用插件 vite-plugin-svg-icon加载svg资源

1.安装 pnpm i vite-plugin-svg-icons -D2.配置 vite 在vite.config.ts 中配置 import { createSvgIconsPlugin } from vite-plugin-svg-icons; import path from path;function configSvgIconsPlugin(isBuild: boolean) {const svgIconsPlugin createSvgIconsPlugin({// 要…

不会设计Logo,不如来看看这9个Logo设计软件!

优秀的 Logo 是企业的形象展示。大公司将花费数万甚至数百万定制特色标志。由于预算有限&#xff0c;一些中小企业或企业家往往希望找到更具成本效益的渠道。这里有 9 个免费的 Logo 设计软件。用户可以通过输入品牌名称来生成自己的 Logo。 1、即时设计 即时设计是一个国内的…

Tomcat部署(图片和HTML等)静态资源时遇到的问题

文章目录 Tomcat部署静态资源问题图中HTML代码启动Tomcat后先确认Tomcat是否启动成功 Tomcat部署静态资源问题 今天&#xff0c;有人突然跟我提到&#xff0c;使用nginx部署静态资源&#xff0c;如图片。可以直接通过url地址访问&#xff0c;为什么他的Tomcat不能通过这样的方…

leetcode 904. 水果成篮(优质解法)

代码&#xff1a; class Solution {public int totalFruit(int[] fruits) {int lengthfruits.length;int []fruitNumsnew int[length1]; //用于记录各个种类摘了多少个水果int count0; //用于记录当前采摘了几种水果int sum0; //用于记录当前共摘了多少水果for(int left0…

Peter算法小课堂—简单建模(2)

太戈编程736题 题目描述&#xff1a; 你是一只汪星人&#xff0c;地球毁灭后你回到了汪星&#xff0c;这里每天有n个小时&#xff0c;你需要为自己选择正好连续的m小时作为每天睡眠的时间。从凌晨开始&#xff0c;第i小时内的睡眠质量为xi&#xff0c;请问经过选择后&#xf…

详解—C++右值引用

目录 一、右值引用概念 二、 左值与右值 三、引用与右值引用比较 四、值的形式返回对象的缺陷 五、移动语义 六、右值引用引用左值 七、完美转发 八、右值引用作用 一、右值引用概念 C98中提出了引用的概念&#xff0c;引用即别名&#xff0c;引用变量与其引用实体公共…

Android P 9.0 增加以太网静态IP功能

效果图 一、Settings添加以太网的配置&#xff1a; 1、vendor\mediatek\proprietary\packages\apps\MtkSettings\res\xml\network_and_internet.xml <com.android.settingslib.RestrictedPreferenceandroid:key"ethernet_settings"android:title"string/et…

如何在PHP中发送电子邮件?

在 PHP 中发送电子邮件通常涉及使用内置的 mail 函数或使用更强大的邮件库&#xff0c;例如 PHPMailer 或 Swift Mailer。以下是使用 mail 函数和 PHPMailer 的基本示例&#xff1a; 使用 mail 函数&#xff1a; <?php$to "recipientexample.com"; $subject …

集合04 Collection (Set) - Java

Set Set 基本介绍Set 常用方法Set 遍历方式 HashSet 的全面说明练习 HashSet 的底层机制说明HashSet 的扩容机制&转成红黑树机制练习1练习2 LinkedHashSetLinkedHashSet底层源码练习 Set 基本介绍 无序&#xff08;添加和取出的顺序不一致)&#xff0c;没有索引 [后面演示…

【Java系列】详解多线程(二)——Thread类及常见方法(下篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一…

大模型微调的“温度”参数,原来影响的是 softmax

大家好啊&#xff0c;我是董董灿。 在对大模型进行微调训练时&#xff0c;经常会看到几个重要的超参数&#xff0c;用来控制大模型生成文本的效果。 其中一个超参数叫做 Temperature&#xff0c;中文名字叫温度&#xff0c;初见时很是不解&#xff0c;为啥一个模型还有温度这个…

将创建表字段语句快速转换成golang struct字段

用网页jquery快速生成 本地建立 struct.html <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>leo-转换</title> <script src"https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></s…

深入学习《大学计算机》系列之第1章 1.2节——问题描述与抽象

一.欢迎来到我的酒馆 第1章 1.2节&#xff0c;问题描述与抽象。 目录 一.欢迎来到我的酒馆二.问题描述、抽象与建模1.什么是抽象2.为什么要抽象3.什么是建模 二.问题描述、抽象与建模 什么是抽象&#xff1f;为什么要抽象&#xff1f;什么是建模&#xff1f;建什么模&#xff1…

Windows安装Elasticsearch并结合内网穿透实现公网远程访问

Windows安装Elasticsearch并结合内网穿透实现公网远程访问 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜…