AT_arc126_d.[ARC126D] Pure Straight
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个由 N 项组成的正整数序列 A=(A1,A2,…,AN)。每个 Ai 都是 1,2,…,K 中的某一个数。
你可以对该数列进行如下操作任意次:
- 交换相邻的两个元素。也就是说,可以选择满足 ∣i−j∣=1 的 i,j,交换 Ai 和 Aj。
请你求出,为了使数列 A 满足以下条件,所需的最小操作次数:
- 数列 A 包含 (1,2,…,K) 作为一个连续子序列。也就是说,存在某个正整数 n,1≤n≤N−K+1,使得 An=1,An+1=2,…,An+K−1=K。
输入格式
输入通过标准输入给出,格式如下:
N K A1 A2 … AN
输出格式
输出使数列 A 满足条件所需的最小操作次数。
输入输出样例
输入#1
4 3 3 1 2 1
输出#1
2
输入#2
5 5 4 1 5 2 3
输出#2
5
输入#3
8 4 4 2 3 2 4 2 1 4
输出#3
5
说明/提示
限制条件
- 2≤K≤16
- K≤N≤200
- 每个 Ai 等于 1,2,…,K 中的某一个
- 数列 A 至少包含 1,2,…,K 中的每一个数各至少一次
样例解释 1
例如,按如下方式操作是最优的:
- 交换 A1 和 A2,A 变为 (1,3,2,1)。
- 交换 A2 和 A3,A 变为 (1,2,3,1)。
- 此时 A1=1,A2=2,A3=3,满足条件。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?