AT_arc126_d.[ARC126D] Pure Straight

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个由 NN 项组成的正整数序列 A=(A1,A2,…,AN)A = (A_1, A_2, \ldots, A_N)。每个 AiA_i 都是 1,2,…,K1, 2, \ldots, K 中的某一个数。

你可以对该数列进行如下操作任意次:

  • 交换相邻的两个元素。也就是说,可以选择满足 ∣i−j∣=1|i-j|=1 的 i,ji, j,交换 AiA_i 和 AjA_j。

请你求出,为了使数列 AA 满足以下条件,所需的最小操作次数:

  • 数列 AA 包含 (1,2,…,K)(1, 2, \ldots, K) 作为一个连续子序列。也就是说,存在某个正整数 nn,1≤n≤N−K+11 \leq n \leq N-K+1,使得 An=1,An+1=2,…,An+K−1=KA_n = 1, A_{n+1} = 2, \ldots, A_{n+K-1} = K。

输入格式

输入通过标准输入给出,格式如下:

NN KK A1A_1 A2A_2 …\ldots ANA_N

输出格式

输出使数列 AA 满足条件所需的最小操作次数。

输入输出样例

  • 输入#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≤162 \leq K \leq 16
  • K≤N≤200K \leq N \leq 200
  • 每个 AiA_i 等于 1,2,…,K1, 2, \ldots, K 中的某一个
  • 数列 AA 至少包含 1,2,…,K1, 2, \ldots, K 中的每一个数各至少一次

样例解释 1

例如,按如下方式操作是最优的:

  • 交换 A1A_1 和 A2A_2,AA 变为 (1,3,2,1)(1,3,2,1)。
  • 交换 A2A_2 和 A3A_3,AA 变为 (1,2,3,1)(1,2,3,1)。
  • 此时 A1=1,A2=2,A3=3A_1 = 1, A_2 = 2, A_3 = 3,满足条件。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页