http://blog.csdn.net/wcyoot/article/details/6435906编码
本题考查的是二进制编码问题。.net
如对1000桶按1~1000编码,须要10位二进制数。blog
所以只须要取10只老鼠,每只老鼠只喝其对应位数为1的编号的酒。get
即10只老鼠按如下编码:监控
第一只 00000 00001二进制
第二只 00000 00010tar
第三只 00000 00100
第四只 00000 01000
...
第十只 10000 00000
每只老鼠只喝其编码与酒编码作位与运算非0的酒。若是毒酒的编码在某一位为1,则监控该位的老鼠必喝,结果为1.
即把10只老鼠的结果,按位填入一个10位二进制数中,其结果即为毒酒编号。
例如:编号为10001 00011的酒是毒酒。则对应的只有第一只,第二只,第六只,第十只死亡。其对应位数置1,即为10001 00011