1000桶有2桶有毒,那么有毒组合构成就是:
1000! / (2! * (1000-2)!)= 999 * 1000 / 1 * 2 = 499500
那么就可以认为是找出499500组合中符合要求的一组,那么bit表示499500组合的话,最少要19位
2 ^ 18 = 262144
2 ^ 19 = 524288
0 不喝 1 喝
19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
……
1000 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 0
……
10000 0 0 0 0 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0
……
499500 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 0
然后看看死亡情况(话说喝499500口是不是会撑死啊)