构造回文数组

目录

原题描述:

题目描述

时间: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.hqwc.cn/news/454934.html

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

相关文章

【INTEL(ALTERA)】为什么在编译 HDMI 英特尔® FPGA IP设计示例 VHDL 变体时看到错误 (13879)?

说明 由于英特尔 Quartus Prime Pro Edition 软件版本 23.2 存在一个问题&#xff0c;您在编译 HDMI 英特尔 FPGA IP设计示例的 VHDL 变体时可能会看到以下错误&#xff1a; 错误 &#xff08;13879&#xff09;&#xff1a; VHDL 绑定指示 hdmi_rx_ram_1port_intel_mce_2010…

微信小程序的图片色彩分析,窃取网络图片的主色调

1、安装 Mini App Color Thief 包 包括下载包&#xff0c;简单使用都有&#xff0c;之前写了&#xff0c;这里就不写了 网址&#xff1a;微信小程序的图片色彩分析&#xff0c;窃取主色调&#xff0c;调色板-CSDN博客 2、 问题和解决方案 问题&#xff1a;由于我们的窃取图片的…

亚信安慧AntDB推动技术创新与满足用户需求

随着互联网技术的迅猛发展&#xff0c;大数据时代的到来&#xff0c;数据库的需求不断增长。在这样的背景下&#xff0c;国产分布式数据库正逐渐崭露头角&#xff0c;AntDB作为其中的重要代表&#xff0c;也积极参与到了这场竞争中。作为国内的技术创新者&#xff0c;AntDB不仅…

函数对象(仿函数)的相关基本概念及用法

函数对象&#xff08;仿函数&#xff09; 基本概念 重载函数调用操作符的类&#xff0c;其对象称为函数对象 函数对象使用重载的&#xff08;&#xff09;时&#xff0c;行为类似函数调用&#xff0c;因此也被称为仿函数 本质 函数对象&#xff08;仿函数&#xff09;是一…

设计模式1-访问者模式

访问者模式是一种行为设计模式&#xff0c;它允许你定义在对象结构中的元素上进行操作的新操作&#xff0c;而无需修改这些元素的类。这种模式的主要思想是将算法与元素的结构分离开&#xff0c;使得可以在不修改元素结构的情况下定义新的操作。 所谓算法与元素结构分离&#x…

LabVIEW多功能接口卡驱动

LabVIEW多功能接口卡驱动 随着自动化测试系统的复杂性增加&#xff0c;对数据采集与处理的需求不断提高。研究基于LabVIEW开发平台&#xff0c;实现对一种通用多功能接口卡的驱动&#xff0c;以支持多通道数据采集及处理功能&#xff0c;展现LabVIEW在自动化和测量领域的强大能…

网络设备-H3C设备SNMP配置及监控

目录 1. 全局模式 2. 配置SNMP V2 3. 配置SNMP V3 4. 配置SNMP Trap 5. 保存配置 6. 查看配置结果 7. H3C设备监控 1. 全局模式 SNMP 的配置工作在网络设备的全局配置模式下完成&#xff0c;在进行SNMP 配置前&#xff0c;请先进入全局配置模式。 en ##进入特权模…

玩家笔记:幻兽帕鲁搭建服务器开服教程

玩转幻兽帕鲁服务器&#xff0c;阿里云推出新手0基础一键部署幻兽帕鲁服务器教程&#xff0c;傻瓜式一键部署&#xff0c;3分钟即可成功创建一台Palworld专属服务器&#xff0c;成本仅需26元&#xff0c;阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

C++之程序内存分配方式

程序内存布局 现在的应用程序都运行在一个虚拟内存空间里&#xff0c;以32位系统为例&#xff0c;其寻址空间为 4G&#xff0c;大部分的操作系统都将4G内存空间的一部分挪给内核调用&#xff0c;应用程序无法直接 访问这一段内存&#xff0c;这一部分内核地址成为内核态空间&am…

算法特征逆向分析之-SHA256

作为信息摘要算法&#xff0c;SHA与MD5计算过程非常相似&#xff0c;这里记录一下其异同&#xff1a; 1 模数不同&#xff1a; MD5 4个64bit初始化常量 64个K SHA1 5个64bit初始化常量 4个K SHA…

时间序列预测 —— DeepAR 模型

时间序列预测 —— DeepAR 模型 DeepAR 模型是一种专门用于处理时间序列概率预测的深度学习模型&#xff0c;它可以自动学习数据中的复杂模式&#xff0c;提高预测的准确性。本文将介绍 DeepAR 模型的理论基础、优缺点&#xff0c;并通过 Python 实现单步预测和多步预测的完整…

力扣题目训练(7)

2024年1月31日力扣题目训练 2024年1月31日力扣题目训练387. 字符串中的第一个唯一字符389. 找不同401. 二进制手表109. 有序链表转换二叉搜索树114. 二叉树展开为链表52. N 皇后 II 2024年1月31日力扣题目训练 2024年1月31日第七天编程训练&#xff0c;今天主要是进行一些题训…