位运算——pku2436患病的奶牛
2011-09-05 21:09
232 查看
患病的奶牛N只,D种病毒,最多包含K种病毒,求包含最多有几头牛
View Code
6 3 2 0 1 1 1 2 1 3 2 2 1 2 2 1
看到D的范围比较小<=15,用011,表示患了第2,3钟病毒的奶牛a[i]
在枚举K种病毒,如110 (用STL里的排列函数枚举)m
如m|a[i]==m,说明a[i]包括在m里,add++
记录最大值
View Code
#include<algorithm> #include<iostream> #include<string.h> #include<stdio.h> using namespace std; int a[1009]; bool b[19]; int main() { int n,d,k; while(scanf("%d%d%d",&n,&d,&k)!=EOF) { int i,t,j,temp; for(i=0;i<n;i++) { scanf("%d",&t); a[i]=0; for(j=0;j<t;j++) { scanf("%d",&temp); a[i]+=1<<(temp-1); } } memset(b,0,sizeof(b)); for(i=0;i<k;i++) { b[d-1-i]=1; } int max=0; do { int add=0; int all=0; for(i=0;i<d;i++) { if(b[i]) all+=1<<i; } for(i=0;i<n;i++) { if((all|a[i])==all) add++; } if(add>max) max=add; }while(next_permutation(&b[0],&b[d])); printf("%d\n",max); } }
相关文章推荐
- nyoj-167 找奶牛病毒 “按位或”运算 递归
- pku 2436 Disease Management
- 奶牛排序——pku3660(floyd判连通法)
- 【IDA*+位运算】PKU-1084-Square Destroyer
- [PKU2389]Bull Math (大数运算)
- pku2777 线段树 (位运算加速)
- 复数简单运算
- VB中位操作运算函数【移位指令】
- IDL 几何运算
- 逻辑运算
- [LintCode] Plus One 加一运算
- P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows
- Effective C++笔记: 构造/析构/赋值运算(一)
- 《第九周任务三》定义分数类中《和》运算符重载,实现分数的输入输出,改造源程序中对运算结果显示方式,使程序读起来更自然
- 05-基本运算
- zoj 3870 Team Formation(异或运算)
- JavaScript对象之数学函数运算-Math
- [USACO10MAR]伟大的奶牛聚集
- pku 1887 Testing the CATCHER(DP)
- 为什么计算机中使用补码来表示与运算