Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
解题报告//解题报告: //由于这题d的上线为15,可以用2进制来表示第i头牛的生病情况 //以样例为例,对于牛的情况先全部转化成2进制形式 // 000 100 010 001 110 110 //对应的2进制数为 0 4 2 1 6 6 //题目中的k为要求最大携带种类 这里k=2 //那么先构造一个最大的排列 即110(k为多少那么起始的1就有多少个) //利用全排列函数生成前级排列,这里依次是 101 011 //把他赋值给x //利用位运算中的|来判断 // 对于每个排列都对牛群进行一次遍历 如果x==(x|a[i])那么该牛的病情是这种排列所反应病情的子集,读者可以随便用个例子试一下 //最后选取最大的那个即可 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator