第十五屆藍橋杯大賽軟件賽省賽Python 大學 C 組:5.回文數組

題目1 回文數組

小藍在無聊時隨機生成了一個長度為 n 的整數數組,數組中的第 i 個數為 ai,他覺得隨機生成的數組不太美觀,想把它變成回文數組,也是就對于任意 i∈[1,n] 滿足 a i = a n ? i + 1 a_i=a_{n?i}+1 ai?=an?i?+1

小藍一次操作可以指定相鄰的兩個數,將它們一起加 1 或減 1;也可以只指定一個數加 1 或減 1,請問他最少需要操作多少次能把這個數組變成回文數組?

輸入格式

輸入的第一行包含一個正整數 n。

第二行包含 n 個整數 a1,a2,…,an,相鄰整數之間使用一個空格分隔。

輸出格式

輸出一行包含一個整數表示答案。

數據范圍

對于 20% 的評測用例,1≤n≤10。
對于所有評測用例, 1 ≤ n ≤ 1 0 5 , ? 1 0 6 ≤ a i ≤ 1 0 6 1≤n≤10^5,?10^6≤a_i≤10^6 1n105?106ai?106

輸入樣例:
4
1 2 3 4
輸出樣例:
3
樣例解釋

第一次操作將 a1,a2 加 1,變為 2,3,3,4;

后面兩次操作將 a1 加 1,變為 4,3,3,4。


思路

  1. +1的操作等價于-1,例如:1 2 3 4 ??1 2 2 1 or 1 2 3 4 ??4 3 3 4
  2. 那么我們只選擇一種操作,-1
  3. 從兩邊分別統計差值,比如對于樣例,0 0 1 2
  4. 遍歷,進行-1操作,對于連續的兩個位置-1,當做一次操作,最終結果為0 0 0 1
  5. 遍歷最終位置為倒數第二個元素,此時如果倒數第一個元素不為0,單獨進行-1操作

python代碼

import os
import sys
n=int(input())
data=list(map(int,input().split()))
a=[0]*(n)
ans=0
l,r=0,n-1
while l<=n//2 and r>=n//2:t=min(data[l],data[r])data[l]-=tif l!=r:data[r]-=tl+=1r-=1
for i in range(n-1):t=data[i]if t>0:ans+=tdata[i+1]-=min(t,data[i+1])
if data[n-1]>0:ans+=data[n-1]
print(ans)

知識點

藍橋杯筆記:藍橋杯備賽筆記

  1. 思維?貪心?回文數?

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

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

相關文章

netty中的WorkerGroup使用詳解

Netty中WorkerGroup的深度解析 WorkerGroup是Netty線程模型中的從Reactor線程組&#xff0c;負責處理已建立連接的I/O讀寫、編解碼及業務邏輯執行。其設計基于主從多Reactor模型&#xff0c;與BossGroup分工協作&#xff0c;共同實現高并發網絡通信的高效處理。 一、WorkerGro…

模運算核心性質與算法應用:從數學原理到編程實踐

目錄 &#x1f680;前言&#x1f31f;數學性質&#xff1a;模運算的理論基石&#x1f4af;基本定義&#xff1a;余數的本質&#x1f4af;四則運算規則&#xff1a;保持同余性的關鍵 &#x1f99c;編程實踐&#xff1a;模運算的工程化技巧&#x1f4af;避免數值溢出&#xff1a;…

#Git 變基(Rebase)案例

適合學習理解的 Git 變基&#xff08;Rebase&#xff09;案例 為了幫助你更好地理解 Git 變基&#xff08;Rebase&#xff09;的操作和效果&#xff0c;下面通過一個簡單的案例來演示變基的過程和影響。 案例背景 假設我們有一個 Git 倉庫&#xff0c;包含兩個分支&#xff1…

泰博云平臺solr接口存在SSRF漏洞

免責聲明&#xff1a;本號提供的網絡安全信息僅供參考&#xff0c;不構成專業建議。作者不對任何由于使用本文信息而導致的直接或間接損害承擔責任。如涉及侵權&#xff0c;請及時與我聯系&#xff0c;我將盡快處理并刪除相關內容。 漏洞描述 SSRF漏洞是一種在未能獲取服務器…

MyBatis 動態SQL 詳解!

目錄 一、 什么是動態 SQL&#xff1f;二、 為什么需要動態 SQL&#xff1f;三、 MyBatis 動態 SQL 標簽四、 標簽詳解及示例1、 if 標簽2、 choose、when、otherwise 標簽3、 where 標簽4、 set 標簽5、 foreach 標簽6、 sql、include 標簽 五、 總結 &#x1f31f;我的其他文…

阿里云服務器遭遇DDoS攻擊有爭議?

近年來&#xff0c;阿里云服務器頻繁遭遇DDoS攻擊的事件引發廣泛爭議。一方面&#xff0c;用戶質疑其防御能力不足&#xff0c;導致服務中斷甚至被迫進入“黑洞”&#xff08;清洗攻擊流量的隔離機制&#xff09;&#xff0c;輕則中斷半小時&#xff0c;重則長達24小時&#xf…

如何在Springboot的Mapper中輕松添加新的SQL語句呀?

在如今的軟件開發界&#xff0c;Spring Boot可是非常受歡迎的框架哦&#xff0c;尤其是在微服務和RESTful API的構建上&#xff0c;真的是讓人愛不釋手&#xff01;今天&#xff0c;我們就來聊聊如何為Spring Boot項目中的Mapper添加新的SQL語句吧&#xff01;說起來&#xff0…

Qt 中 findChild和findChildren綁定自定義控件

在 Qt 中&#xff0c;findChild 和 findChildren 是兩個非常實用的方法&#xff0c;用于在對象樹中查找特定類型的子對象。這兩個方法是 QObject 類的成員函數&#xff0c;因此所有繼承自 QObject 的類都可以使用它們。當您需要查找并綁定自定義控件時&#xff0c;可以按照以下…

leecode第19天

15、三數之和 # 給你一個整數數組 nums &#xff0c;判斷是否存在三元組 [nums[i], nums[j], nums[k]] 滿足 i ! j、i ! k 且 j ! k &#xff0c; # 同時還滿足 nums[i] nums[j] nums[k] 0 。請你返回所有和為 0 且不重復的三元組。 # 注意&#xff1a;答案中不可以包含重復…

2109. 向字符串添加空格

2109. 向字符串添加空格 題目鏈接&#xff1a;2109. 向字符串添加空格 代碼如下&#xff1a; class Solution { public:string addSpaces(string s, vector<int>& spaces) {string res "";int j 0;//直接遍歷即可for (int i 0;i < spaces.size();i…

Java Spring Boot 與前端結合打造圖書管理系統:技術剖析與實現

目錄 運行展示引言系統整體架構后端技術實現后端代碼文件前端代碼文件1. 項目啟動與配置2. 實體類設計3. 控制器設計4. 異常處理 前端技術實現1. 頁面布局與樣式2. 交互邏輯 系統功能亮點1. 分頁功能2. 搜索與篩選功能3. 圖書操作功能 總結 運行展示 引言 本文將詳細剖析一個基…

CSRF跨站請求偽造——入門篇【DVWA靶場low級別writeup】

CSRF跨站請求偽造——入門篇 0. 前言1. 什么是CSRF2. 一次完整的CSRF攻擊 0. 前言 本文將帶你實現一次完整的CSRF攻擊&#xff0c;內容較為基礎。需要你掌握的基礎知識有&#xff1a; 了解cookie&#xff1b;已經安裝了DVWA的靶場環境&#xff08;本地的或云的&#xff09;&am…

BT-Basic函數之首字母R

BT-Basic函數之首字母R 文章目錄 BT-Basic函數之首字母Rrandomizercallremoterenamereportreport clearreport fault syndromereport isreport level isreport outreport usingre?savere?storereturnrevision$rexitrinitrli$rndrotaterpmcrpsrun randomize 以下是這段英文的…

CentOS 7 如何掛載ntfs的移動硬盤

CentOS 7 如何掛載ntfs的移動硬盤 前言一、查看硬盤并嘗試掛載(提示無法掛載)二、yum安裝epel-release提示yum被鎖定三、強行終止yum的進程四、yum安裝epel-release完成五、yum安裝ntfs-3g六、此時可正常掛載NTFS硬盤 前言 CentOS 7默認情況下是不支持NTFS的文件系統&#xff…

面試常考簡單操作

參考文章 面試常考簡單操作 快速排序歸并排序Dijkstra自定義排序交替打印奇偶數冒泡排序插入排序堆排序歐幾里得算法求最大公約數單例模式的雙重校驗LRU 快速排序 public class Solution {private static int partition(int[] arr, int left, int right) {int temp arr[left]…

2025圖像處理和深度學習國際學術會議(IPDL 2025)

重要信息 官網&#xff1a;www.IPDL.xyz 時間&#xff1a;2025年4月11-13日 地點&#xff1a;中國-成都 簡介 隨著深度學習和圖像處理技術的迅速發展&#xff0c;相關技術的應用逐漸滲透到各個行業&#xff0c;如醫療影像分析、自動駕駛、安防監控和智能制造等。這些應用的…

RNN萬能逼近定理證明

RNN萬能逼近定理證明 RNN原理圖和數學表達式RNN的萬能逼近定理及其證明證明 RNN原理圖和數學表達式 s t U h t ? 1 W x t b ∈ R D h s_tUh_{t-1}Wx_tb\in\mathbb{R}^{D_h} st?Uht?1?Wxt?b∈RDh? s t ∈ R D h s_t\in\mathbb{R}^{D_h} st?∈RDh? U ∈ R D h D h U\…

算力重構營銷生態:廣電數字人 “造星“ 運動背后的智能革命

一、數字人 "造星" 運動&#xff1a;廣電行業的智能覺醒 當陜西廣電的虛擬主播 "小雅" 在柞水縣融媒體中心實現日更 100 秒新聞&#xff0c;當湖北廣電的 "王丹" 從新聞主播轉型為城市文化 IP&#xff0c;一場由算力驅動的數字人 "造星&qu…

大數據Spark(五十六):Spark生態模塊與運行模式

文章目錄 Spark生態模塊與運行模式 一、Spark生態模塊 二、Spark運行模式 Spark生態模塊與運行模式 一、Spark生態模塊 Spark 生態模塊包括&#xff1a;SparkCore、SparkSQL、SparkStreaming、StructuredStreaming、MLlib 和 GraphX。與 Hadoop 相關的整個技術生態如下所示…

Could not find artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0 in central

具體錯誤 [ERROR] Failed to execute goal on project datalink-resource: Could not resolve dependencies for project com.leon.datalink:datalink-resource:jar:1.0.0: Could not find artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0 in central (https://repo.maven…