#CF1992B. Angry Monk
Angry Monk
愤怒的僧侣
时间限制:2 秒
空间限制:256 MB
为了庆祝康复,k1o0n 烤了一个巨大的土豆焗菜,长度为 米。
结果 Noobish_Monk 就是不喜欢土豆,于是他决定毁掉这道菜。他把这道菜切成了 块,长度分别为 米。
k1o0n 对此很不高兴。幸运的是,一切都可以挽救。为此,k1o0n 可以执行以下操作之一:
- 选择一块长度 的块,将其分成两块,长度分别为 和 。此时块数增加 ;
- 选择一块长度为 的块和另一块长度为 ()的块,将它们合并成一块长度为 的新块。此时块数减少 。
帮助 k1o0n 找到将这些碎块合并成完整的一段长度为 的焗菜所需的最少操作次数。
例如,若 ,,,最优方案如下:
- 将长度为 的块分成 和 ,得到 。
- 将长度为 的块和一块长度为 的块合并,得到 。
- 将长度为 的块和一块长度为 的块合并,得到 。
输入格式
第一行包含一个整数 ()—— 测试数据组数。
每组数据包含两行。第一行包含两个整数 和 (,)—— 焗菜的长度和块数。
第二行包含 个整数 (,)—— Noobish_Monk 切出的各块长度。
保证所有测试数据的 之和不超过 。
输出格式
对于每组测试数据,输出一个整数 —— k1o0n 恢复整道菜所需的最少操作次数。
样例输入
4
5 3
3 1 1
5 2
3 2
11 4
2 3 1 5
16 6
1 6 1 1 1 6
样例输出
2
3
9
15