《P14917 [GESP202512 五级] 数字移动》

发布时间:2026/9/28 5:41:41

《P14917 [GESP202512 五级] 数字移动》
题目背景对应的选择、判断题试题 - GESP 202512 C 五级 - 洛谷有题题目描述小 A 有一个包含 N 个正整数的序列 A{A1​,A2​,⋯,AN​}序列 A 恰好包含 2N​ 对不同的正整数。形式化地对于任意 1≤i≤N存在唯一一个 j 满足 1≤j≤N,ij,Ai​Aj​。小 A 希望每对相同的数字在序列中相邻为了实现这一目的小 A 每次操作会选择任意 i(1≤i≤N)将当前序列的第 i 个数字移动到任意位置并花费对应数字的体力。例如假设序列 A{1,2,1,3,2,3}小 A 可以选择 i2将 A2​2 移动到 A3​1 的后面此时序列变为 {1,1,2,3,2,3}耗费 2 点体力。小 A 也可以选择 i3将 A3​1 移动到 A2​2 的前面此时序列变为 {1,1,2,3,2,3}花费 1 点体力。小 A 可以执行任意次操作但他希望自己每次花费的体力尽可能小。小 A 希望你能帮他计算出一个最小的 x使得他能够在每次花费的体力均不超过 x 的情况下令每对相同的数字在序列中相邻。输入格式第一行一个正整数 N代表序列长度保证 N 为偶数。第二行包含 N 个正整数 A1​,A2​,…,AN​代表序列 A。且对于任意 1≤i≤N存在唯一一个 j 满足 1≤j≤N,ij,Ai​Aj​。数据保证小 A 至少需要执行一次操作。输出格式输出一行代表满足要求的 x 的最小值。输入输出样例输入 #1复制6 1 2 1 3 2 3输出 #1复制2说明/提示对于 40% 的测试点保证 1≤N,Ai​≤100。对于所有测试点保证 1≤N,Ai​≤105。代码实现#include bits/stdc.h using namespace std; bool check(int x, const vectorint A) { int n A.size(); vectorint last_pos; unordered_mapint, int first_pos; unordered_mapint, int count; unordered_mapint, vectorint positions; for (int i 0; i n; i) { positions[A[i]].push_back(i); } for (auto p : positions) { int val p.first; if (val x) continue; auto pos p.second; if (pos.size() ! 2) continue; for (int i pos[0] 1; i pos[1]; i) { if (A[i] x) { return false; } } } return true; } int main() { ios::sync_with_stdio(false); cin.tie(0); int N; cin N; vectorint A(N); int maxVal 0; for (int i 0; i N; i) { cin A[i]; maxVal max(maxVal, A[i]); } int left 1, right maxVal, ans maxVal; while (left right) { int mid (left right) / 2; if (check(mid, A)) { ans mid; right mid - 1; } else { left mid 1; } } cout ans \n; return 0; }

相关新闻

FPGA核心技术解析:架构、开发流程与优化实践

FPGA核心技术解析:架构、开发流程与优化实践

2026/8/27 14:06:07

1. FPGA技术概述与核心架构FPGA(Field-Programmable Gate Array)是一种可编程集成电路,其最大特点是能够在制造完成后通过编程反复修改其逻辑功能。这种灵活性使其成为数字电路设计领域的革命性技术。现代FPGA已从最初的简单可编程逻辑器件&a…

FPGA差分信号原理与应用实战指南

FPGA差分信号原理与应用实战指南

2026/9/26 17:12:16

1. 差分信号的基础概念与FPGA应用背景在高速数字电路设计中,差分信号传输已成为应对电磁干扰、提升信号完整性的关键技术手段。与传统的单端信号相比,差分信号通过一对相位相反的信号线(P端和N端)传输信息,利用两者间的…

C++信奥P1766液体滴落:模拟与计算几何的实战精解

C++信奥P1766液体滴落:模拟与计算几何的实战精解

2026/9/27 21:56:04

1. 项目概述与核心需求解析信奥刷题,对于每一个学习信息学奥赛C的选手来说,都是通往更高水平的必经之路。今天要聊的这道题——P1766 液体滴落,乍一看标题有点物理模拟的味道,实际上它是一道非常经典、能很好锻炼选手逻辑思维和代…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/28 5:05:21

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…