Universal Cup Judging System

Universal Cup

Time Limit: 1.0 s Memory Limit: 256 MB Total points: 100 Hackable ✓
Statistics

Red Monster 正在为“过度复杂问题座谈会”准备一场比赛。Red Monster 有一些文件需要上传到比赛准备系统 Polytope。所有文件都在同一个文件夹中;每个文件都有一个创建日期和一个文件名。所有文件名和创建日期都是唯一的。

上传文件的界面如下所示:

文件名 创建日期
checker.cpp 17.03.2023
clever_generator.cpp 18.09.2022
doit.sh 15.12.2022
examples.txt 10.12.2021
generator.cpp 07.05.2021
monsters.Inc.3D.2001.1080p.BluRay.Half-OU.DTS-ES.x264-HDMaNiAcS.avi 17.10.2021
not_a_virus.exe 07.06.2022
sol.cpp 18.06.2021
spxG7HoMSMHH225xjadbnA.tmp 06.07.2023
tutorial.tex 03.02.2021
xxx_my_password_DO_NOT_HACK.docx 10.01.2023
validator.cpp 15.01.2023

在一次操作中,Red Monster 执行以下所有步骤:

  • 按文件名或创建日期对文件夹中的文件进行排序。
  • 选择一个连续的文件段,并将这些文件上传到 Polytope。

请注意,文件上传后不会被删除。只有一部分文件需要上传到 Polytope。其他文件可能是尴尬的,因此绝不能上传。例如,在上表中,只有文件名加粗的文件应该被上传;其余文件显然与比赛无关。

每个文件只能上传一次,也就是说,不应该有任何文件在多次操作中被上传。上传所有必要文件所需的最少操作次数是多少?

输入格式

第一行包含一个整数 $t$ ($1 \le t \le 1000$),表示测试用例的数量。接下来是 $t$ 个测试用例。每个测试用例描述如下:

设 $n$ 为文件总数。我们将文件索引为 $1 \dots n$,并假设按文件名排序时的文件顺序为 $1, 2, 3, \dots, n$。

每个测试用例的第一行包含两个整数 $n$ 和 $k$ ($1 \le k \le n \le 1000$),分别表示文件总数和需要上传的文件数。

第二行包含 $k$ 个整数 $u_1, u_2, \dots, u_k$ ($1 \le u_i \le n$,对于所有 $i$;所有 $u_i$ 互不相同)。这些是需要上传的文件的索引。

第三行包含一个 $1 \dots n$ 的排列 $p_1, p_2, \dots, p_n$。这表示按创建日期排序时的文件顺序为 $p_1, p_2, \dots, p_n$。

保证所有测试用例的 $n$ 之和不超过 $1000$。

输出格式

对于每个测试用例,在单独的一行中打印答案——一个整数,即上传所有文件所需的最少操作次数。

样例

样例输入 1

2
12 8
2 5 8 3 4 10 12 1
10 5 8 6 4 7 2 3 11 12 1 9
8 4
1 3 5 7
1 4 5 8 7 6 3 2

样例输出 1

3
4

说明

第一个样例测试用例对应于题目描述中的例子。按创建日期排序后,顺序如下:

ID 文件名 创建日期
10 tutorial.tex 03.02.2021
5 generator.cpp 07.05.2021
8 sol.cpp 18.06.2021
6 monsters.Inc.3D.2001.1080p.BluRay.Half-OU.DTS-ES.x264-HDMaNiAcS.avi 17.10.2021
4 examples.txt 10.12.2021
7 not_a_virus.exe 07.06.2022
2 clever_generator.cpp 18.09.2022
3 doit.sh 15.12.2022
11 xxx_my_password_DO_NOT_HACK.docx 10.01.2023
12 validator.cpp 15.01.2023
1 checker.cpp 17.03.2023
9 spxG7HoMSMHH225xjadbnA.tmp 06.07.2023

观察到,如果我们只按文件名排序,我们需要使用 4 次操作。如果只按创建日期排序,情况也是如此。一种 3 次操作的解决方案如下:

  • 按文件名排序。上传文件 2、3 和 4 (clever_generator.cpp, doit.sh 和 examples.txt)。注意,如果我们在这一步也上传了文件 5 (generator.cpp),我们就会打乱下一步。
  • 按创建日期排序。上传文件 10、5 和 8 (tutorial.tex, generator.cpp 和 sol.cpp)。
  • 按创建日期排序。上传文件 12 和 1 (validator.cpp 和 checker.cpp)。

还有其他 3 次操作的解决方案。可以证明不存在 2 次操作的解决方案。

在第二个样例测试用例中,我们想要上传所有索引为奇数的文件。无论我们如何排序,甚至不存在两个我们想要上传的文件是连续的情况。因此,每个文件都必须单独上传。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.