CF1496B.Max and Mex
普及-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a multiset S initially consisting of n distinct non-negative integers. A multiset is a set, that can contain some elements multiple times.
You will perform the following operation k times:
- Add the element ⌈2a+b⌉ (rounded up) into S, where a=mex(S) and b=max(S). If this number is already in the set, it is added again.
Here max of a multiset denotes the maximum integer in the multiset, and mex of a multiset denotes the smallest non-negative integer that is not present in the multiset. For example:
- mex(1,4,0,2)=3;
- mex(2,5,1)=0.
Your task is to calculate the number of distinct elements in S after k operations will be done.
给你一个多重集 S,初始时包含 n 个互不相同的非负整数。多重集是一种允许元素重复出现的集合。
你将执行以下操作 k 次:
- 向 S 中添加元素 ⌈2a+b⌉(向上取整),其中 a=mex(S),b=max(S)。若该数已存在于集合中,则仍将其再次加入(即允许重复)。
此处,多重集的 max 表示该多重集中最大的整数;多重集的 mex 表示未出现在该多重集中的最小非负整数。例如:
- mex(1,4,0,2)=3;
- mex(2,5,1)=0。
你的任务是计算执行 k 次操作后,S 中不同元素的个数。
输入格式
The input consists of multiple test cases. The first line contains a single integer t (1≤t≤100) — the number of test cases. The description of the test cases follows.
The first line of each test case contains two integers n, k (1≤n≤105, 0≤k≤109) — the initial size of the multiset S and how many operations you need to perform.
The second line of each test case contains n distinct integers a1,a2,…,an (0≤ai≤109) — the numbers in the initial multiset.
It is guaranteed that the sum of n over all test cases does not exceed 105.
输入包含多个测试用例。第一行包含一个整数 t(1≤t≤100),表示测试用例的数量。随后是各测试用例的描述。
每个测试用例的第一行包含两个整数 n 和 k(1≤n≤105,0≤k≤109),分别表示多重集 S 的初始大小以及需要执行的操作次数。
每个测试用例的第二行包含 n 个互不相同的整数 a1,a2,…,an(0≤ai≤109),即初始多重集中的数字。
保证所有测试用例的 n 之和不超过 105。
输出格式
For each test case, print the number of distinct elements in S after k operations will be done.
对于每个测试用例,输出执行 k 次操作后集合 S 中不同元素的个数。
输入输出样例
输入#1
5 4 1 0 1 3 4 3 1 0 1 4 3 0 0 1 4 3 2 0 1 2 3 2 1 2 3
输出#1
4 4 3 5 3
说明/提示
In the first test case, S=0,1,3,4, a=mex(S)=2, b=max(S)=4, ⌈2a+b⌉=3. So 3 is added into S, and S becomes 0,1,3,3,4. The answer is 4.
In the second test case, S=0,1,4, a=mex(S)=2, b=max(S)=4, ⌈2a+b⌉=3. So 3 is added into S, and S becomes 0,1,3,4. The answer is 4.
在第一个测试用例中,S=0,1,3,4,a=mex(S)=2,b=max(S)=4,⌈2a+b⌉=3。因此将 3 加入 S,S 变为 0,1,3,3,4。答案为 4。
在第二个测试用例中,S=0,1,4,a=mex(S)=2,b=max(S)=4,⌈2a+b⌉=3。因此将 3 加入 S,S 变为 0,1,3,4。答案为 4。
输入解题思路,AI测评打分。不知道怎么写?