#NC2508F. 破旧的 LED 灯管

破旧的 LED 灯管

题目描述

有一座古老高耸的建筑物在电梯中使用 LED 灯管展示楼层编号,然而出于维修经费的压力,管理者试图减少电梯可以停靠的楼层数量,并想尽量精简不必要的 LED 灯管线路。

目前,电梯可以停靠的楼层数量已经确定,而接下来缩减 LED 灯管线路的工作则被分配给了你。你知道这座建筑物有 10m10^m 层,每层楼的编号在 00(10m1)(10^m - 1) 之间,且都是恰好 mm 位数字(可能会在左侧补零)。对于楼层编号的每一位,原先配有 77 根灯管(如下图所示),它们会根据需要显示的数字灵活地开关。

现在,其中 nn 个楼层已经被选定继续支持停靠,电梯在移动和停靠时也只会展示这 nn 种楼层数值。你的任务是让电梯里尽量少的灯管还能继续正常工作,使得利用这些灯管的开关状态即可判断停靠楼层对应的 nn 个可能编号中的哪一个。你的时间非常宝贵,请尽快计算出需要保持运行的最小灯管数量。

输入格式

接下来是 TT 个测试用例。对于每个测试用例:

第一行包含两个整数 nnm(1n100,1m3)m (1 ≤ n ≤ 100, 1 ≤ m ≤ 3)

第二行包含 nn 个两两不同的整数 x1,x2,,xn(0xi<10m)x_1,x_2,…,x_n (0 ≤ x_i < 10^m),表示被选定的楼层编号,保证每个楼层编号恰好有 mm 位数字。

另外还保证 TT 个测试用例中 nn 之和不超过 10310^3

输出格式

对于每个测试用例,在一行中输出一个整数,表示需要保持正常工作的灯管的最小数量。

3
10 1
0 1 2 3 4 5 6 7 8 9
5 2
01 02 05 08 11
1 3
012
5
3
0

解释 #1

对于样例中第二个测试用例,下面列出了一个可能的解决方案。

原始状态:

缩减后: