http://acm.pku.edu.cn/JudgeOnline/problem?id=2436
思路:位运算+枚举
对于每只牛,有可能患病的总数是15种。可以把患病的序列看成一个二进制数:有该种病表示为1,没有表示为0;
对于sample,表示如下:
000 100 010 001 110 110
患病特征数: 0 4 2 1 6 6
然后就构造一个最大患病序列,该二进制数中有k个1,然后对其进行求全排列。
对于每个排列对应的十进制数,与每头牛的患病特征数进行位运算,也就是 (m|c[i])==m,如果该式子成立,说明,这头牛身上的病,包含在这个序列中。计数count++;
对所有排列中找出count最大的就是题目要求。