当前位置: 首页 > news >正文

[蓝桥杯 2024 省 C] 回文数组

题目名字 [蓝桥杯 2024 省 C] 回文数组

题目链接

题意

给n个数字,用最少的次数,通过同时两个数字或单个数字加一或减一使给的这一串数字变成回文数

思路

  1. 字眼最少其实就需要判断出这个大概就是贪心了,不过很可惜比赛的时候就只想到了回文,想破了脑袋。。。
  2. 然后呢我们就需要用到回文的知识点啦,一般是取这串数字的一半来加减的,那么就可以用到一个数组来存储第i个和第n-+1个的差值,有可能会遇到产生负数的情况,所以需要用abs了
  3. 然后就是分情况讨论了,当第i个和第i+1个为正数的时候,就需要取两个数中小的那个数用b[i+1]数组给剪掉,因为sum在循环开始的时候已经加上了b[i]次了

坑点

  1. 不算坑点但是属于是完全有这个知识点,min和max的使用,是在Sstl库函数里面的,以及abs函数的使用
  2. x
  3. x

算法一:XX+XX

时间复杂度

$

实现步骤
  1. x
  2. x
  3. x
代码
 #include<iostream>
#include<algorithm> 
#include<math.h>
using namespace std;
const int N=1e5+10;
long long n,a[N],b[N];
int main(){
long long int sum=0;cin>>n;for(int i=1;i<=n;i++){cin>>a[i]; }for(int i=1;i<=n;i++){b[i]=a[i]-a[n-i+1];} for(int i=1;i<=n/2;i++){sum+=abs(b[i]);if(b[i]<0&&b[i+1]<0){b[i+1]-=max(b[i],b[i+1]);}if(b[i]>0&&b[i+1]>0){b[i+1]-=min(b[i],b[i+1]);}}cout<<sum;return 0;
}

http://www.mrgr.cn/news/57997.html

相关文章:

  • 在 typescript 中,如何封装一个 class 类来接收接口的响应数据
  • 使用docker-compose搭建redis7集群-3主3从
  • EIR管理机卡绑定配置
  • 基于Python大数据的招聘数据分析及大屏可视化系统
  • 【pm】devfreq 框架
  • disql 全量备份SQL脚本DM7/DM8
  • LeetCode199. 二叉树的右视图(2024秋季每日一题 47)
  • Linux 权限的理解
  • 前端发送请求格式
  • 1024——视触觉传感器GelSight的前世今生
  • 系统移植相关概念总结
  • 力扣周赛第420场 中等 3325.字符至少出现k次的子字符串 I
  • C语言程序设计:现代设计方法习题笔记《chapter4》
  • java的maven打包插件来了,package一键打包exe、dmg、rpm等
  • JAVA应用测试,线上故障排查分析全套路!
  • C++,STL 045(24.10.24)
  • 【Linux】进程状态及其转换
  • Github_以太网开源项目verilog-ethernet代码阅读与移植(八)——移植工程分享
  • 头歌——人工智能(遗传算法)
  • 获取图像的风格矩阵
  • 现场总是发生急停,很可能是PLC和设置间网络中断
  • make_blobs函数
  • Django+Vue全栈开发旅游网项目首页
  • python实战(二)——房屋价格回归建模
  • 九、Linux实战案例:项目部署全流程深度解析
  • 【C++笔记】类和对象(下)