洛谷 P4552 [Poetize6] IncDec Sequence


挺好的一道思維題。

分析

因為是對區間修改,多次修改肯定會超時,很容易想到差分。

那么原題的對區間修改就可以轉換為下面三個操作(均在差分數組中):

1. 任選一個數+1

2. 任選一個數-1

3. 任選兩個數+1和-1

進一步考慮題目的問題,讓原數組一樣,那么就是

a[1]的值任意,a[2]開始后面的值均為0。

再分析現有的三個操作,最多的操作數肯定是總正數之和或者總負數之和(取大的那個)

顯而易見的,因為只能選一個數進行操作。

那么我們再考慮滿足當前最少操作數的時候,能出現不同序列的數量,即a[1]的取值能有多少。

如果正數比負數多,那么正數執行操作3減少到0,額外的還能執行加法(加到a[1]身上),也可以不加(即選操作2)。那么不同的數量就是正數比負數多的部分再+1(可以一個都不加)。

反之負數也是如此,但是需要注意負數執行加,那么a[1]就是減,不能小于0。

正負一樣多,那肯定就只有一種序列了,因為要求操作數最少。

AC代碼

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;const int N=1e5+5;
int n,a[N],pos,neg;void solve(){cin>>n;for(int i=1,t;i<=n;++i){cin>>t;a[i]+=t;a[i+1]-=t;}for(int i=2;i<=n;++i)if(a[i]<0)neg+=-a[i];else pos+=a[i];cout<<max(pos,neg)<<endl;//最少操作次數if(pos>neg){//正數多cout<<pos-neg+1<<endl;}else if(pos==neg){cout<<1<<endl;}else if(pos<neg){//負數多if(neg-pos<=a[1])cout<<neg-pos+1<<endl;else cout<<a[1]+1<<endl;}
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162022.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162022.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162022.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

貪心算法及相關例題

目錄 什么是貪心算法&#xff1f; leetcode455題.分發餅干 leetcode376題.擺動序列 leetcode55題.跳躍游戲I leetcode45題.跳躍游戲II leetcode621題.任務調度器 leetcode435題.無重疊空間 leetcode135題.分發糖果 什么是貪心算法&#xff1f; 貪心算法更多的是一種思…

《QT從基礎到進階·三十七》QWidget實現左側導航欄效果

NavigationBarPlugin插件類實現了對左側導航欄的管理&#xff0c;我們可以在導航欄插件中添加界面&#xff0c;并用鼠標點擊導航欄能夠切換對應的界面。 源碼在文章末尾 實現效果如下&#xff1a; NavigationBarPlugin實現的接口如下&#xff1a; class NAVIGATIONBAR_EXP…

【brpc學習實踐六】backup request場景案例

應用場景 有時為了保證可用性,需要同時訪問兩路服務,哪個先返回就取哪個。在brpc中,這有多種做法,根據server是否掛在同一個命名服務內有所區別。 當后端server可以掛在一個命名服務內時 Channel開啟backup request。這個Channel會先向其中一個server發送請求,如果在Ch…

C#,數值計算——插值和外推,多項式插值與外推插值(Poly_interp)的計算方法與源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 多項式插值與外推插值 /// Polynomial Interpolation and /// Extrapolation interpolation routines for one dimension /// </summary> public class Poly…

【ES6.0】- Promise對象

【ES6.0】- Promise對象 文章目錄 【ES6.0】- Promise對象一、概述二、Promise狀態三、Promise方法3.1 Promise.prototype.then方法&#xff1a;鏈式操作3.2 Promise.prototype.catch方法&#xff1a;捕捉錯誤3.3 Promise.race方法&#xff1a;捕捉錯誤3.4 Promise.any()3.5 Pr…

第三節-Android10.0 Binder通信原理(三)-ServiceManager篇

1、概述 在Android中&#xff0c;系統提供的服務被包裝成一個個系統級service&#xff0c;這些service往往會在設備啟動之時添加進Android系統&#xff0c;當某個應用想要調用系統某個服務的功能時&#xff0c;往往是向系統發出請求&#xff0c;調用該服務的外部接口。在上一節…

廣告機/商業顯示屏_基于MT878安卓主板方案

安卓主板在廣告機領域扮演著重要的角色。無論是在商場、車站、酒店、電梯、機場還是高鐵站&#xff0c;LED廣告機廣泛應用&#xff0c;并通過不同方式進行播放和管理。 廣告機/商業顯示屏_基于MT878安卓主板方案 基于MT8788安卓主板方案的廣告機采用了聯發科MT8788八核芯片方案…

對比兩個數組中對應位置的兩個元素將每次對比的最大值用于構成新的數組np.maximum()

【小白從小學Python、C、Java】 【計算機等考500強證書考研】 【Python-數據分析】 對比兩個數組中對應位置的兩個元素 將每次對比的最大值用于構成新的數組 np.maximum() 選擇題 以下代碼的輸出結果為&#xff1f; import numpy as np a1 [1,2,33] a2 [11,2,3] print("…

Axios 默認配置 簡化URL 簡化代碼 多臺服務器接口配置

main.js配置 import Axios from axios Axios.defaults.method GET//設置默認的請求類型 Axios.defaults.baseURL https://apis.jxcxin.cn/api//設置接口地址 Axios.defaults.params { token: abc } //每次請求都帶上這個參數 Axios.defaults.timeout 5000 //請求的超時時間…

MATLAB - text的兩種使用方法

text小技巧 1. 常規使用&#xff08;Method 1&#xff09;2. 在顯示畫面的相對位置&#xff08;Method 2&#xff09;3. 舉個例子 1. 常規使用&#xff08;Method 1&#xff09; text(x,y,txt)2. 在顯示畫面的相對位置&#xff08;Method 2&#xff09; text(string,‘ABC’,…

使用websocket獲取thingsboard設備的實時數據

背景 有一個讀者前來咨詢,如何實時獲取設備的遙測數據。 其實tb是有提供websocket接口來獲取設備數據的。而且還支持js跨域調用。下面給大家演示一下。 websocket地址 完整代碼 <!DOCTYPE HTML> <html><h

HTTP協議和WebSocket協議之間的區別

HTTP協議和WebSocket協議之間的主要區別在于它們的設計目的和通信方式。 HTTP協議是一種無狀態的協議&#xff0c;它的主要設計目的是用于從Web服務器傳輸超文本到本地瀏覽器的傳輸協議。HTTP協議使用請求和響應模型&#xff0c;客戶端向服務器發送請求&#xff0c;服務器返回…

【Java并發編程十二】線程池

線程池 用來統一地管理線程&#xff0c;避免線程的重復創建與銷毀。使用線程池可以讓執行完的線程回到線程池&#xff0c;等待下一次調用。 import jdk.jshell.EvalException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import j…

Matplotlib顏色條的配置_Python數據分析與可視化

Matplotlib顏色條配置 基本顏色顏色條選擇配色方案顏色條刻度的限制與擴展功能的設置離散型顏色條 基本顏色 Matplotlib提供了8種指定顏色的方法&#xff1a; 在[0&#xff0c;1]中的浮點值的RGB或RGBA元組&#xff08;例如 (0.1, 0.2, 0.5) 或&#xff08;0.1&#xff0c; 0.…

C語言中文網 - Shell腳本 - 9

第1章 Shell基礎(開胃菜) 9. Shell修改命令提示符 Shell 通過PS1和PS2這兩個環境變量來控制提示符的格式,修改PS1和PS2的值就能修改命令提示符的格式。 PS1 控制最外層的命令提示符格式。 PS2 控制第二層的命令提示符格式。 在修改 PS1 和 PS2 之前,我們先用 echo 命令輸出…

contos7中mongodb數據庫無法備份與還原,數據庫工具的安裝

由于之前數據庫沒有卸載干凈&#xff0c;導致直接用sudo yum install -y mongodb-org-tools命令無法直接安裝&#xff0c;只能選擇手動安裝了。 先去官網找到mongo-tool工具 MongoDB Database Tools Downloads | MongoDB 然后復制要下載的版本的地址。 然后直接用wget來下載 …

【每日OJ —— 622. 設計循環隊列】

每日OJ —— 622. 設計循環隊列 1.題目&#xff1a;622. 設計循環隊列2.解法2.1.解法講解2.1.1.算法講解2.1.2.代碼實現2.1.3.提交通過展示 1.題目&#xff1a;622. 設計循環隊列 2.解法 1.本題有很多解法&#xff1a;可以使用數組&#xff0c;單鏈表&#xff0c;雙鏈表&#x…

2023亞太杯數學建模賽題人工精準翻譯

大家好&#xff0c;亞太杯今天早上6點已經開賽啦&#xff0c;然后我在這里給大家帶來賽題的精準人工翻譯&#xff0c;防止大家直接用軟件翻譯導致某些地方亂碼或者翻譯不精準&#xff0c;這會導致后續做題過程出現很大偏差。 注意&#xff0c;以下翻譯均免費發放word形式的哈&…

【精選】CSS入門必看知識點大合集

CSS簡介 CSS概念 CSS&#xff08;Cascading Style Sheets&#xff09;層疊樣式表&#xff0c;又叫級聯樣式表&#xff0c;簡稱樣式表 CSS文件后綴名為.css CSS用于HTML文檔中元素樣式的定義 為什么需要CSS 使用css的唯一目的就是讓網頁具有美觀一致的頁面 語法 CSS 規則…

DB2—03(DB2中常見基礎操作)

DB2—03&#xff08;DB2中常見基礎操作&#xff09; 1. 前言1.1 oracle和mysql相關 2. db2中的"dual"2.1 SYSIBM.SYSDUMMY12.2 使用VALUES2.3 SYSIBM.SYSDUMMY1 "變" dual 3. db2中常用函數3.1 nvl()、value()、COALESCE()3.2 NULLIF() 函數3.3 LISTAGG() …