CF1223D.Sequence Sorting

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

You are given a sequence a1,a2,…,ana_1, a_2, \dots, a_n, consisting of integers.

You can apply the following operation to this sequence: choose some integer xx and move all elements equal to xx either to the beginning, or to the end of aa. Note that you have to move all these elements in one direction in one operation.

For example, if a=[2,1,3,1,1,3,2]a = [2, 1, 3, 1, 1, 3, 2], you can get the following sequences in one operation (for convenience, denote elements equal to xx as xx-elements):

  • [1,1,1,2,3,3,2][1, 1, 1, 2, 3, 3, 2] if you move all 11-elements to the beginning;
  • [2,3,3,2,1,1,1][2, 3, 3, 2, 1, 1, 1] if you move all 11-elements to the end;
  • [2,2,1,3,1,1,3][2, 2, 1, 3, 1, 1, 3] if you move all 22-elements to the beginning;
  • [1,3,1,1,3,2,2][1, 3, 1, 1, 3, 2, 2] if you move all 22-elements to the end;
  • [3,3,2,1,1,1,2][3, 3, 2, 1, 1, 1, 2] if you move all 33-elements to the beginning;
  • [2,1,1,1,2,3,3][2, 1, 1, 1, 2, 3, 3] if you move all 33-elements to the end;

You have to determine the minimum number of such operations so that the sequence aa becomes sorted in non-descending order. Non-descending order means that for all ii from 22 to nn, the condition ai−1≤aia_{i-1} \le a_i is satisfied.

Note that you have to answer qq independent queries.

给你一个由整数组成的序列 a1,a2,…,ana_1, a_2, \dots, a_n。

你可以对这个序列执行如下操作:选择某个整数 xx,并将所有等于 xx 的元素全部移动到序列 aa 的开头或末尾。注意:在一次操作中,你必须将所有这些元素朝同一方向移动。

例如,若 a=[2,1,3,1,1,3,2]a = [2, 1, 3, 1, 1, 3, 2],则一次操作后可得到以下序列(为方便起见,将等于 xx 的元素记为 xx-元素):

  • [1,1,1,2,3,3,2][1, 1, 1, 2, 3, 3, 2]:将所有 11-元素移至开头;
  • [2,3,3,2,1,1,1][2, 3, 3, 2, 1, 1, 1]:将所有 11-元素移至末尾;
  • [2,2,1,3,1,1,3][2, 2, 1, 3, 1, 1, 3]:将所有 22-元素移至开头;
  • [1,3,1,1,3,2,2][1, 3, 1, 1, 3, 2, 2]:将所有 22-元素移至末尾;
  • [3,3,2,1,1,1,2][3, 3, 2, 1, 1, 1, 2]:将所有 33-元素移至开头;
  • [2,1,1,1,2,3,3][2, 1, 1, 1, 2, 3, 3]:将所有 33-元素移至末尾。

你需要确定使序列 aa 变为非降序排列所需的最少操作次数。非降序排列指对所有从 22 到 nn 的 ii,均满足 ai−1≤aia_{i-1} \le a_i。

注意:你需要回答 qq 个相互独立的查询。

输入格式

The first line contains one integer qq (1≤q≤3⋅1051 \le q \le 3 \cdot 10^5) — the number of the queries. Each query is represented by two consecutive lines.

The first line of each query contains one integer nn (1≤n≤3⋅1051 \le n \le 3 \cdot 10^5) — the number of elements.

The second line of each query contains nn integers a1,a2,…,ana_1, a_2, \dots , a_n (1≤ai≤n1 \le a_i \le n) — the elements.

It is guaranteed that the sum of all nn does not exceed 3⋅1053 \cdot 10^5.

第一行包含一个整数 qq(1≤q≤3⋅1051 \le q \le 3 \cdot 10^5),表示查询次数。每次查询由连续的两行表示。

每次查询的第一行包含一个整数 nn(1≤n≤3⋅1051 \le n \le 3 \cdot 10^5),表示元素个数。

每次查询的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots , a_n(1≤ai≤n1 \le a_i \le n),表示这些元素。

保证所有查询的 nn 值之和不超过 3⋅1053 \cdot 10^5。

输出格式

For each query print one integer — the minimum number of operation for sorting sequence aa in non-descending order.

对于每个查询,输出一个整数——将序列 aa 按非降序排序所需的最少操作次数。

输入输出样例

  • 输入#1

    3
    7
    3 1 6 6 3 1 1
    8
    1 1 4 4 4 7 8 8
    7
    4 2 5 2 6 2 7

    输出#1

    2
    0
    1

说明/提示

In the first query, you can move all 11-elements to the beginning (after that sequence turn into [1,1,1,3,6,6,3][1, 1, 1, 3, 6, 6, 3]) and then move all 66-elements to the end.

In the second query, the sequence is sorted initially, so the answer is zero.

In the third query, you have to move all 22-elements to the beginning.

在第一次查询中,你可以将所有 11-元素移动到开头(之后序列变为 [1,1,1,3,6,6,3][1, 1, 1, 3, 6, 6, 3]),然后将所有 66-元素移动到末尾。

在第二次查询中,序列初始时已排序,因此答案为零。

在第三次查询中,你必须将所有 22-元素移动到开头。

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

首页