CF2059B.Cost of the Array

普及-

通过率:0%

AC君温馨提醒

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

题目描述

给定一个数组 aa 和一个整数 kk2kn2\le k\le n )。你需要将数组 aa 分割为恰好 kk 个非空子数组。使得数组 aa 的每一个元素恰好属于其中一个子数组。

下一步,将所有具有偶数索引的子数组(第 2244,…,kk 个)连接起来,成为一个新数组 bb 。之后,把 00 添加到数组 bb 的末尾。

数组 bb 的开销被定义为:最小的使 biib_i\ne i 的索引 ii 。比如,数组 b=[1,2,4,5,0]b=[1,2,4,5,0] 的开销为 33 ,因为 b1=1b_1=1b2=2b_2=2 ,并且 b33b_3\ne 3。请确定一种划分数组 aa 的最优方案,使得数组 bb 的开销最小

  • 如果 xx 是数组 yy 的子数组,那么 xx 中的所有元素可以通过删除数组 yy 的开头几个元素(可能是零个或全部)和末尾几个元素(可能是零个或全部)得到。

输入格式

本题有多组测试数据。

第一行输入一个正整数 tt1t1041\le t\le10^4) 表示数据组数。每组测试数据的格式如下:

第一行输入两个整数 nnkk2kn2×1052\le k\le n\le 2 \times 10^5), kk 是偶数。表示数组 aa 的长度和子数组数量。

第二行输入 nn 个整数 a1a_1a2a_2 , …, ana_n 。表示数组 aa 的元素。

保证所有测试数据中 nn 的和不超过 2×1052\times 10^5

输出格式

对于每组测试数据,输出一行包含一个整数,表示数组 bb 的最小开销。

输入输出样例

  • 输入#1

    4
    3 2
    1 1 1
    8 8
    1 1 2 2 3 3 4 4
    5 4
    1 1 1 2 2
    5 4
    1 1 1000000000 2 2

    输出#1

    2
    5
    2
    1

说明/提示

样例的第一组数据,只有两种可能的划分:[[1],[1,1]][[1],[1,1]][[1,1],[1]][[1,1],[1]] 。这两种情况都是 b1=1b_1=1 并且 b21b_2 \ne 1 ,所以开销是 22

样例的第二组数据,只有一种划分方法,其中 b=[1,2,3,4,0]b=[1,2,3,4,0] 。所以开销是 55b5=05b_5=0 \ne 5)。

样例的第三组数据,一种划分方案:[[1],[1,1],[2],[2]][[1],[1,1],[2],[2]] 。此时 b=[1,1,2,0]b=[1,1,2,0]。这时开销是 22

首页