CF1617C.Paprika and Permutation
普及-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Paprika loves permutations. She has an array a1,a2,…,an. She wants to make the array a permutation of integers 1 to n.
In order to achieve this goal, she can perform operations on the array. In each operation she can choose two integers i (1≤i≤n) and x (x>0), then perform ai:=aimodx (that is, replace ai by the remainder of ai divided by x). In different operations, the chosen i and x can be different.
Determine the minimum number of operations needed to make the array a permutation of integers 1 to n. If it is impossible, output −1.
A permutation is an array consisting of n distinct integers from 1 to n in arbitrary order. For example, [2,3,1,5,4] is a permutation, but [1,2,2] is not a permutation (2 appears twice in the array) and [1,3,4] is also not a permutation (n=3 but there is 4 in the array).
帕普里卡热爱排列。她有一个数组 a1,a2,…,an。她希望将该数组变为 1 到 n 的一个排列。
为达成这一目标,她可以对数组执行若干操作。每次操作中,她可选择两个整数 i(满足 1≤i≤n)和 x(满足 x>0),然后执行 ai:=aimodx(即用 ai 除以 x 所得的余数替换 ai)。在不同的操作中,所选的 i 和 x 可以不同。
请确定使该数组变为 1 到 n 的一个排列所需的最少操作次数。若不可能实现,则输出 −1。
排列是指由 1 到 n 中 n 个互不相同的整数组成的数组(顺序任意)。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是排列(数字 2 在数组中出现了两次),[1,3,4] 也不是排列(此时 n=3,但数组中出现了 4)。
输入格式
Each test contains multiple test cases. The first line contains a single integer t (1≤t≤104) — the number of test cases. Description of the test cases follows.
The first line of each test case contains an integer n (1≤n≤105).
The second line of each test case contains n integers a1,a2,…,an. (1≤ai≤109).
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.
每个测试包含多个测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。随后是测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤105)。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109)。
保证所有测试用例的 n 之和不超过 2⋅105。
输出格式
For each test case, output the minimum number of operations needed to make the array a permutation of integers 1 to n, or −1 if it is impossible.
对于每个测试用例,输出使数组成为整数 1 到 n 的一个排列所需的最少操作次数;如果不可能,则输出 −1。
输入输出样例
输入#1
4 2 1 7 3 1 5 4 4 12345678 87654321 20211218 23571113 9 1 2 3 4 18 19 5 6 7
输出#1
1 -1 4 2
说明/提示
For the first test, the only possible sequence of operations which minimizes the number of operations is:
- Choose i=2, x=5. Perform a2:=a2mod5=2.
For the second test, it is impossible to obtain a permutation of integers from 1 to n.
对于第一个测试用例,唯一能使操作次数最小的操作序列是:
- 选择 i=2,x=5。执行 a2:=a2mod5=2。
对于第二个测试用例,无法得到一个由 1 到 n 的整数组成的排列。
输入解题思路,AI测评打分。不知道怎么写?