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