构造回文数组

目录

原题描述:

题目描述

时间:1s 空间:256M

题目描述:

输入格式:

输出格式:

样例1输入:

样例1输出:

样例2输入:

样例2输出:

约定:

作者hack数据:

输入:

输出:

主要思路:

求答案:

代码code:


原题描述:

时间限制: 1000ms

空间限制: 262144kB

题目描述

时间:1s 空间:256M

题目描述:

小信有一个长度为 n 的数组 a,他想把这个数组变成回文数组。

他可以操作若干次,每次操作,选择一个区间[L,R],把a_L,a_{L+1},...a_R​ 都加 1

小信想知道最少需要操作多少次,才能把这个数组变成回文数组。

输入格式:

第一行包含一个整数 n

第二行包含长度为 n 的数组 a_1,a_2,...a_n​ 。

输出格式:

输出一个整数表示答案。

样例1输入:

6
2 6 4 3 4 1

样例1输出:

2

样例2输入:

3
1 10 1

样例2输出:

0

约定:

对于100%的数据,1\le n\le 3 \cdot 10^5,1 \le a_i \le 10^9

对于样例1:选择 [3,6]和 [4,5],数组变成 [2,6,5,5,6,2]

作者hack数据:


输入:
 

100
295117793 852883521 36092583 681745569 23541647 32480206 769047426 128111255 850655575 8867194 368297902 613812293 347992953 134986353 863972512 970426966 785192811 540559474 988288563 456754809 154127192 76979571 460304832 733713409 70970660 635551742 769915887 7641407 660822912 748447793 598826955 609365172 822558626 849292246 849242098 941529514 216622499 647819205 34288562 360796801 564768544 688079849 702507270 777507089 776688905 515137821 52246637 307838702 453802754 136279521 618645584 803000735 877721915 194107657 136422627 187654402 227004447 519370751 457822037 804058036 911179942 457248799 305969878 787934175 14313040 9582663 34547015 870503865 216036366 15134170 174645568 77155278 213349935 622731147 84032183 14391789 46136215 862980910 139514947 73594405 599740219 178453695 493364413 239940662 981248295 136272953 532638230 679826619 820419790 652179351 81724392 185039813 238018126 660954049 903887251 617400394 816543430 957422974 272333302 464554507

输出:

12198773018

主要思路:

这个是个贪心题目,看了我的hack数据,我们也要知道,这题要开:long long!!!

我们可以这样想,因为只加不减,所以可以从原数组中,相对的两个(a[i]相对a[n-i+1])

如果a[i]大,那么a[i]就不需要被加,sum[i] = 0,a[n-i+1]就要被加a[i]-a[n-i+1]次,sum[n-i+1] = a[i]-a[n-i+1] 

反之亦然。

sum[i]就代表了这个数字要加几次才可以和他相对的数字相等。

求答案:

上面的这些话是初始化,现在我们要求答案,我们可以找一找规律。

用样例1来说。

sum数组={0,0,0,1,2,1}

我们不看0。

看后边的1,2,1。

如何可以发现规律?

如果只有1,那么最少操作一次。

如果只有1,2,那么最少操作两次。

如果只有1,2,1还是操作两次。

有些同学会很快发现规律:最少操作数就是sum连续一段区间的最大值。

那么我告诉你:恭喜你,猜错了。

sum反例:1,2,1,3。

这个时候,答案应该是4,而按上面的方式,答案是3。

所以正确结论是:

如果sum[i]>sum[i-1],那么ans+=sum[i]-sum[i-1]

如果sum[i]<sum[i-1],那么答案不变。

代码code:

理解上面的话后,就好写了。

#include<bits/stdc++.h>
using namespace std;
int n;
int a[300010];
int sum[300010];
int main()
{cin>>n;//输入for(int i=1;i<=n;i++){cin>>a[i];}
//	int ret=0;//初始化for(int i=1,j=n;i<=n,j>=1;i++,j--){if(a[i]>=a[j]){sum[i] = 0;sum[j] = a[i]-a[j];}else {sum[i] = a[j]-a[i];sum[j] = 0;}
//		cout<<sum[i];}//算答案long long ret=0;for(int i=1;i<=n;i++){if(sum[i]>=sum[i-1]){ret+=sum[i]-sum[i-1];}}cout<<ret;return 0;
}

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

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

相关文章

ubantu扩容解决 sudo -i 报无法识别

GParted给ubuntu系统磁盘resize大小时候出现cannot resize read-only file system解决办法_gparted无法调整分区大小-CSDN博客https://blog.csdn.net/ningmengzhihe/article/details/127295333?spm1001.2014.3001.5506 解决磁盘挂载系统目录出现问题&#xff1a; 1、sudo -i…

【HarmonyOS应用开发】后台提醒(十六)

简述 随着生活节奏的加快&#xff0c;我们有时会忘记一些重要的事情或日子&#xff0c;所以提醒功能必不可少。应用可能需要在指定的时刻&#xff0c;向用户发送一些业务提醒通知。例如购物类应用&#xff0c;希望在指定时间点提醒用户有优惠活动。为满足此类业务诉求&#xf…

C语言-分支和循环语句

目录 分支语句 if语句 关系操作符&#xff1a; 逻辑操作符&#xff1a; switch语句 循环语句 while循环 for循环 ​编辑 循环控制语句&#xff08;break&#xff0c;continue&#xff09; goto语句充当循环 分支语句 if语句 if语句的括号内需要写条件表达式&#xff0c;通…

超多制作模板的姓氏头像生成器微信小程序源码

超多制作模板的姓氏头像生成器微信小程序源码&#xff0c;这是一款姓氏头像制作小工具&#xff0c;内含丰富多样的模板提供制作。 以前的基本是固定位置生成&#xff0c;这款制作支持拖拽调整位置&#xff0c;自定义颜色&#xff0c;阴影等等。

探索设计模式的魅力:外观模式简化术-隐藏复杂性,提供简洁接口的设计秘密

设计模式专栏&#xff1a;http://t.csdnimg.cn/U54zu 目录 引言&#xff1a;探索简化之路 一、起源和演变 二、场景案例分析 2.1 不用模式实现&#xff1a;用一坨坨代码实现 2.2 问题 2.3 外观模式重构代码 定义 界面 接口 利用外观模式解决问题步骤 外观模式结构和说明 重构…

Linux 网络:PTP 简介

文章目录 1. 前言2. PTP(Precision Time Protocol​) IEEE 1588 协议简介2.1 PTP IEEE 1588 协议时间同步原理2.2 PTP IEEE 1588 协议时钟类型2.2.1 普通时钟(OC: Ordinary Clock)2.2.2 边界时钟(BC: Boundary Clock)2.2.3 透明时钟(TC: Transparent Clock)2.2.3.1 端对端透明时…

【论文研读】Better Together:Unifying Datalog and Equality Saturation

最近研究ReassociatePass整的头大&#xff0c;翻两篇Datalog的论文看看。 今天看的一篇是比较新的文章&#xff0c;23年4月贴到arxiv上的。 本文的主要贡献是提出了egglog,将Datalog和Eqsat结合起来&#xff0c;继承了Datalog的efficient incremental execution, cooperating a…

【前端web入门第四天】02 CSS三大特性+背景图

文章目录: 1. CSS三大特性 1.1继承性 1.2 层叠性 1.3 优先级 1.3.1 优先级1.3.2 优先级-叠加计算规则 2. 背景图 2.1 背景属性2.2 背景图2.3 背景图的平铺方式2.4 背景图位置2.5 背景图缩放2.6 背景图固定2.7 背景复合属性 1. CSS三大特性 1.1继承性 什么是继承性? 子级默…

前端实现搜索框筛选

效果图 页面解析 是一个input输入框和一个button按钮组成输入框查询 内容是一个折叠面板 html代码 <div class"left-content-box"><div class"colum-search"><el-input v-model"columKey" clearable placeholder"请输入关…

redis大数据统计之hyperloglog,GEO,Bitmap

目录 一、亿级系统常见的四中统计 1、聚合统计 2、排序统计 3、二值统计 4、基数统计 二、hyperloglog 去重的方式有哪些&#xff1f; hyperloglog实战演示 1、技术选型 2、代码演示 三、GEO GEO实战演示 四、Bitmap 一、亿级系统常见的四中统计 1、聚合统计 聚…

STM32F407移植OpenHarmony笔记7

继上一篇笔记&#xff0c;成功启动了liteos_m内核&#xff0c;可以创建线程了&#xff0c;也能看到shell控制台了。 今天研究文件系统&#xff0c;让控制台相关文件命令如mkdir和ls能工作。 liteos_m内核支持fatfs和littlefs两个文件系统&#xff0c; fatfs适用于SD卡&#xff…

将11.x.x升级至16.x.x不成功的一系列问题(二)node-sass sass-loader需安装指定版本

nvm 版本切换搞定了 咱就是说 那个node-sass好像有点毛病 还得指定对应的loaber版本 node.js 16.18.1对应的如下 “node-sass”: “^6.0.1”, “sass-loader”: “^10.0.1”, node.js 11.8.0 对应的如下 “node-sass”: “^4.14.1”, “sass-loader”: “^7.3.1”, 老项目即…

python-题库篇-数学

文章目录 求最大公约数和最小公倍数斐波那契数列求和运算求前n阶乘的和求年龄 求最大公约数和最小公倍数 两个数的最大公约数是两个数的公共因子中最大的那个数&#xff1b;两个数的最小公倍数 则是能够同时被两个数整除的最小的那个数。 输入&#xff1a;&#xff08;120 和…

零基础如何入门渗透测试2024年最新版,保姆级教程,小白必看!

转眼间&#xff0c;从大三开始学安全&#xff0c;到现在也有五年了&#xff0c;也算是对渗透测试有一定理解&#xff0c;今天也是出一篇入门教程&#xff0c;以实操为主&#xff0c;希望可以帮助到想入门渗透测试的小白。如果觉得有用&#xff0c;可以给我点个赞和收藏&#xf…

Android: 深入理解 ‘companion object {}‘

Android: 深入理解 ‘companion object {}’ Kotlin是一种现代的、静态类型的编程语言&#xff0c;它在设计时充分考虑了开发者的生产力和代码的可读性。其中一个独特的特性就是companion object。在本篇博客中&#xff0c;我们将深入探讨这个特性&#xff0c;理解它的工作原理…

Java21 + SpringBoot3集成七牛云对象存储OSS,实现文件上传

文章目录 前言实现步骤引入maven依赖修改配置文件创建七牛云配置类创建文件操作服务类创建文件操作控制器前端实现运行效果 总结 前言 近日心血来潮想做一个开源项目&#xff0c;目标是做一款可以适配多端、功能完备的模板工程&#xff0c;包含后台管理系统和前台系统&#xf…

EOF和0区别

题目描述 KiKi学习了循环&#xff0c;BoBo老师给他出了一系列打印图案的练习&#xff0c;该任务是打印用“*”组成的X形图案。 输入描述&#xff1a; 多组输入&#xff0c;一个整数&#xff08;2~20&#xff09;&#xff0c;表示输出的行数&#xff0c;也表示组成“X”的反斜…

你的歌声婉转入云霄

可爱的一朵玫瑰花 - 吕继宏 可爱的一朵玫瑰花塞地玛丽亚 可爱的一朵玫瑰花塞地玛丽亚 那天我在山上打猎骑着马&#xff08;人善被人欺马善被人骑&#xff09; 正当你在山下歌唱婉转入云霄 歌声使我迷了路 我从山坡滚下 哎呀呀 你的歌声婉转入云霄 强壮的青年哈萨克伊万杜达尔 …

【八大排序】选择排序 | 堆排序 + 图文详解!!

&#x1f4f7; 江池俊&#xff1a; 个人主页 &#x1f525;个人专栏&#xff1a; ✅数据结构冒险记 ✅C语言进阶之路 &#x1f305; 有航道的人&#xff0c;再渺小也不会迷途。 文章目录 一、选择排序1.1 基本思想1.2 算法步骤 动图演示1.3 代码实现1.4 选择排序特性总结 二…

C/C++内存管理的底层调用逻辑

✨Blog&#xff1a;&#x1f970;不会敲代码的小张:)&#x1f970; &#x1f251;推荐专栏&#xff1a;C语言&#x1f92a;、Cpp&#x1f636;‍&#x1f32b;️、数据结构初阶&#x1f480; &#x1f4bd;座右铭&#xff1a;“記住&#xff0c;每一天都是一個新的開始&#x1…