Here is how I had solved the problem. Say you have weights a_1, a_2, ..., a_r.
Now you can weight a weight x is you have
a_i1 + a_i2 + ... + a_ik = x + a_j1 + a_j2 + ... + a_jl
i.e x = Sum e_i * a_i
where e_i is either -1, 0 or 1.
i.e. we need to write each number as a linear combination of the a_i with coefficients 1,0 or -1.
Now we know that we can write any number in base 3 as a combination of powers of 3 with the coefficients(digits) 0,1,2.
A similar fact is that we can also use digits 1, 0 and -1 when we write a number in base 3!
The fact that we need to get all possible numbers leads to the fact that you might possibly be able to use powers of 3.
The puzzle is so constructed that it actually works out well and you can prove it easily.
The same idea can be applied to the similar problem where you have a spring balance (i.e just one pan). Here the coefficients are 0 and 1, and powers of 2 immediately spring to mind.
And another problem:
Suppose I said you had two copies of each weight and a common balance and had to weigh all weights from 1 to 61. Which weights would you choose?