2020.08.07【NOIP提高组】模拟:海明距离 总结
Description
对于二进制串
a
,
b
a,b
a,b,他们之间的海明距离是指两个串异或之后串中
1
1
1的个数。异或的规则为:
0
X
O
R
0
=
0
0\:XOR\:0 = 0
0XOR0=0
1
X
O
R
0
=
1
1\:XOR\:0 = 1
1XOR0=1
0
X
O
R
1
=
1
0\:XOR\:1 = 1
0XOR1=1
1
X
O
R
1
=
0
1\:XOR\:1 = 0
1XOR1=0
计算两个串之间的海明距离的时候,他们的长度必须相同。现在我们给出
N
N
N个不同的二进制串,请计算出这些串两两之间的最短海明距离。
Input
第一个数字是整数
T
(
T
≤
10
)
T(T\leq10)
T(T≤10),代表数据的组数。
接下来有
T
T
T组数据,每组数据的第一行是一个正整数
N
N
N,代表不同的二进制串的个数。接下来是
N
N
N行,每行都是一个二进制串(长度是
5
5
5)。我们用数字
(
0
−
9
)
(0-9)
(0−9)和字符
(
A
−
F
)
(A-F)
(A−F)来表示这个二进制串。它代表这个二进制串的
16
16
16进制码。例如,“
12345
12345
12345”代表的二进制串为“
00010010001101000101
00010010001101000101
00010010001101000101”。
Output
对于每个数据,请输出一个整数,即答案值。
Sample Input
2
2
12345
54321
4
12345
6789A
BCDEF
0137F
Sample Output
6
7
Data Constraint
对于
30
%
30\%
30%的数据有
1
≤
N
≤
100
1\leq N\leq100
1≤N≤100;
对于全部数据,有
1
≤
N
≤
100000
1\leq N\leq100000
1≤N≤100000。
总结
比赛思路: 首先打了一个暴力,然后打了一下
t
r
i
e
trie
trie,结果这题不能用贪心,自己的数据挂了。最后交了暴力。
正解: 在
t
r
i
e
trie
trie上面
d
f
s
dfs
dfs,不能用贪心,再加个剪枝,就可以过了。