第一题答案是三次,
https://gist.github.com/zjucloud/eee320c016e670ddfef111c386ad9b26直接写的,不确定一定正确:
1:平均分三组,A B C
A vs B
A < B or A > B 看 2.1, A == B 看 2.2
2.1
说明在 A,B 里面,由于 A 和 B 相对等价,我们可以假设 A < B (反过来就把 AB 互换即可):这样只可能是 A 有一个硬币轻,或者 B 有一个硬币重
A 和 B 都分成 2+1+1,表示为 A1,A3,A4 和 B1,B3,B4
我们从 C 里面取正常的硬币 X,然后 A3 + B1 VS A4 + B4 + X,把 A1 和 B3 留下
三种情况:
<:2.1.3
>:2.1.4
=:2.1.5
2.1.3
A3 + B1 < A4 + B4 + X
说明 A3, B4 有问题,因为之前是 A < B,所以要不是 A 的只可能轻,B 的只可能重, B1, A4 如果有问题,应该是>而不是<
A3 和 B4 都是一个,所以用 3.1.2 解法即可
2.1.4
A3 + B1 > A4 + B4 + X
反转了,说明 B1,A4 可能有问题,B1 是两个,A4 是一个
我们把 B1 拆成 B11 和 B12,然后 B11 + A4 VS X + X:
<:说明 res = A4
>:res=B11
==:res=B12
2.1.5
A3 + B1 == A4 + B4 + X
说明剩下的 A1 和 B3 有问题,和 2.4 类似,拆分 A1 为 A11, A12
然后 A11 + B3 VS X + X
<: res=A11
>: res=B3
==: res=A12
3.1
说明 C 有问题
C 分为 2 + 2:M, N
M 再分 M1, M2,然后 M1 VS M2
如果 M1 != M2 看 3.1.2,否则看 3.1.3
3.1.2 M1 != M2 说明 M1, M2 有一个有问题
取一个正常的 X vs M1,如果不平衡,res=M1 否则 res=M2
3.1.3
说明 N 里面有问题,和 2.3 一样,取一个正常的 X vs N1,如果不平衡,说明 res=N1,否则 res=N2