307116: CF1303D. Fill The Bag
Memory Limit:256 MB
Time Limit:2 S
Judge Style:Text Compare
Creator:
Submit:0
Solved:0
Description
Fill The Bag
题意翻译
你有一个大小为 $n$ 的背包和 $m$ 个大小为 $2$ 的非负整数次幂的物品,其中第 $i$ 个物品的大小为 $a_i$。 每次可以把一个物品划分成两个相同大小的物品。你需要恰好填满整个背包。 例如,当 $n = 10$ 且 $a = [1,1,32]$ 时,你可以把大小为 $32$ 的物品划分成两个大小为 $16$ 的物品,再把其中一个大小为 $16$ 的物品划分成两个大小为 $8$ 的物品,这样你就可以用两个大小为 $1$ 的物品和一个大小为 $8$ 的物品填满这个背包。 求出最小的划分物品的次数。题目描述
You have a bag of size $ n $ . Also you have $ m $ boxes. The size of $ i $ -th box is $ a_i $ , where each $ a_i $ is an integer non-negative power of two. You can divide boxes into two parts of equal size. Your goal is to fill the bag completely. For example, if $ n = 10 $ and $ a = [1, 1, 32] $ then you have to divide the box of size $ 32 $ into two parts of size $ 16 $ , and then divide the box of size $ 16 $ . So you can fill the bag with boxes of size $ 1 $ , $ 1 $ and $ 8 $ . Calculate the minimum number of divisions required to fill the bag of size $ n $ .输入输出格式
输入格式
The first line contains one integer $ t $ ( $ 1 \le t \le 1000 $ ) — the number of test cases. The first line of each test case contains two integers $ n $ and $ m $ ( $ 1 \le n \le 10^{18}, 1 \le m \le 10^5 $ ) — the size of bag and the number of boxes, respectively. The second line of each test case contains $ m $ integers $ a_1, a_2, \dots , a_m $ ( $ 1 \le a_i \le 10^9 $ ) — the sizes of boxes. It is guaranteed that each $ a_i $ is a power of two. It is also guaranteed that sum of all $ m $ over all test cases does not exceed $ 10^5 $ .
输出格式
For each test case print one integer — the minimum number of divisions required to fill the bag of size $ n $ (or $ -1 $ , if it is impossible).
输入输出样例
输入样例 #1
3
10 3
1 32 1
23 4
16 1 4 1
20 5
2 1 16 1 8
输出样例 #1
2
-1
0