首页 > 其他分享 >P10902 [蓝桥杯 2024 省 C] 回文数组

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

时间:2024-08-24 17:37:27浏览次数:10  
标签:2024 P10902 int long 蓝桥 数加 回文

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

十年OI一场空,不开long long见祖宗!

思路:贪心

题目要求将一个随机数组变成一串回文数,可执行的操作如下:

  • 相邻两个数同时加 \(1\)
  • 单个数加 \(1\) 或减 \(1\)

由于一个数加 \(1\) 得到回文数和一个数减 \(1\) 得到回文数效果一样,我们可以不考虑减 \(1\) 的情况。

很显然,相邻两个数同时加 \(1\) 要比单个数加 \(1\) 或减 \(1\) 的步数少,于是我们优先将相邻两个数同时加 \(1\)。

实现

我们用数组 \(b\) 来存放 \(a_i\) 需要变化的次数,然后计算相邻两个数可以同时加 \(1\) 的次数,最后加上单个数加 \(1\) 的次数。

ACcode

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
long long n,a[N],b[N],ans;
int main()
{
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)
		scanf("%lld",&a[i]);
	for(int i=1;i<=(n+1)/2;i++)     //计算a[i]需要变化的次数
	{
		if(a[i]<a[n-i+1])           //前一半
			b[i]=a[n-i+1]-a[i];
		else
			b[n-i+1]=a[i]-a[n-i+1]; //后一半
	}
	for(int i=1;i<=n;i++)           //计算步数
	{
		int mn=min(b[i],b[i+1]);    //mn为相邻两个数可以同时加1的次数
		b[i]-=mn;
		b[i+1]-=mn;
		ans+=mn;                    //加上邻两个数可以同时加1的次数
		ans+=b[i];                  //加上单个数加1的次数
	}
	printf("%lld",ans);
}

求赞qwq

标签:2024,P10902,int,long,蓝桥,数加,回文
From: https://www.cnblogs.com/Hyper-zero/p/18377986

相关文章

  • 免费【2024】springboot 基于Android平台的校园论坛系统的设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • 免费【2024】springboot 基于bs架构的母婴全程服务管理系统的设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • 免费【2024】springboot 基于BS的小区家政服务预约平台的设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • CSP2024-9
    如此成绩,如何noip?A题意:\(T\)组询问,每次给出一个正整数\(n=p^kq^k\le10^{18}\)。求非降序列\(\{a_{m}\}\)(\(m>1\))的数量,满足\(\proda_i=n\)。非降并不需要真正考虑每个数的顺序,这很不可做。考虑\(n\)的每个因数在序列中的出现次数。一个长为\((k+1)^2-2......
  • 免费【2024】springboot 基于Android平台的诗词学习系统的设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • 免费【2024】springboot 基于Android平台的校园论坛系统的设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • 免费【2024】springboot 基于bs架构的母婴全程服务管理系统的设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • 免费【2024】springboot 基于BS的小区家政服务预约平台的设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • 2024 牛客多校 7
    0.prefacehttps://ac.nowcoder.com/acm/contest/81602过题数\(n\geq40\),几乎可补题。除非是高科技题。\(20\geqn<40\),酌情可补题。可能对得上技能树。\(n<20\),几乎不可补题。除非是一些低科技的神秘启发题。本场共\(11\)题,可补题有\(10\)题。\(A\)典缝......
  • 2024 Mx 暑假集训
    Day0晚自习到了MX听了WJ讲了许多的话,但是我感觉其实也没有太多梗,真的不知道那些小朋友怎么搞出这么多图片的。认识了舍友Coffee_zzz和ciuim都是冲省队的大佬,就我一个蒟蒻,希望能跟上他们的脚步。Day1B班第一天比赛,状态不是很好,所以考的有一点差(50)。这使得我产生了退竞......