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

上海市计算机学会竞赛平台2022年4月月赛丙组步步高

题目描述

给定一个序列 a1,…,ana1​,…,an​ ,小爱可以修改这个序列,每步修改只能修改一个数字,且只能将这个数字增加一个单位或减少一个单位。

请问,最少需要几步修改,才能将序列调整成一个步步高序列。所谓步步高序列,就是指每一个数字恰好比前一个数大 11。

输入格式
  • 第一行:单个整数 nn,表示数列长度;
  • 第二行:nn 个整数,表示 a1,…,ana1​,…,an​。
输出格式
  • 单个整数:表示最小的修改步数。
数据范围
  • 对于 30%30% 的数据,1≤n≤201≤n≤20,1≤ai≤201≤ai​≤20;
  • 对于 60%60% 的数据,1≤n≤50001≤n≤5000,1≤ai≤50001≤ai​≤5000;
  • 对于 100%100% 的数据,1≤n≤5000001≤n≤500000,−109≤ai≤109−109≤ai​≤109
样例数据

输入:

5
2 3 3 3 3

输出:

5

说明:

改成1 2 3 4 5

输入:

5
-3 3 0 2 4

输出:

7

说明:

改成-1 0 1 2 3

详见代码:

#include <bits/stdc++.h>
using namespace std;
int a[500005];
int main() 
{int n;long long ans = 0;cin >> n;for (int i = 1; i <= n; i++) {scanf("%d", &a[i]);a[i] -= i;}sort(a + 1, a + n + 1);for (int i = 1; i <= n; i++) {ans += abs(a[i] - a[(n + 1) / 2]);}cout << ans << endl;return 0;
}

http://www.xdnf.cn/news/14114.html

相关文章:

  • Qoppa Software提供的15款PDF产品组件科学学习
  • HarmonyOS 组件复用面试宝典 [特殊字符]
  • 【技术工具】源码管理 - GIT工具
  • Java 传输较大数据的相关问题解析和面试问答
  • ffmpeg subtitles 字幕不换行的问题解决方案
  • LeetCode 209.长度最小的子数组
  • 常见的数据处理方法有哪些?ETL中的数据处理怎么完成
  • 海马优化算法优化支持向量回归(SVR)模型项目
  • DAO 代码说明文档
  • 【计算机系统结构】期末复习
  • JVM-垃圾回收
  • ES6+核心特性
  • 数据可视化——一图胜千言
  • [python]pycddlib使用案例
  • Python小工具开发实战:从零构建自动化文件管理器的心得与体悟
  • Mac电脑数据恢复工具-Disk 企业版
  • 数据库中的索引作用:索引分类、索引失效、聚集索引和非聚集索引
  • Linux 系统 CPU 过高问题深度排查
  • 【WPF】MVVM的消息机制
  • Jupyter notebook中的感叹号!魔法命令介绍
  • iOS 26 beta1 真机无法执行hot reload
  • iOS Alamofire库的使用
  • windows安装jekyll
  • 人工智能之数学基础:如何将二次型转换为标准型?
  • 第二十四章 24.QoS(CCNA)
  • Windows 远程桌面添加 SSL 证书指南
  • 2025虚幻人物模型积累
  • Ubuntu双系统迁移
  • (读转载文)AI发展的“上半场”与“下半场”
  • 分布假设学习笔记