Codeforeces868CQualification Rounds(位运算)
来源:互联网 发布:java图片base64编码 编辑:程序博客网 时间:2024/06/07 02:50
/*位运算有n个备选题,k个队伍,1代表该队伍知道这个题目,0代表不知道是否可以选出几个题使每个队伍都知道题目总数的一半如果选多个题可以满足要求,那么其中至少有2个题可以满足要求由于k比较小,可以处理处最大的可能x,进行枚举*/#include <cstdio>#include <algorithm>#include <cstring>#include <set>using namespace std;const int maxn=1e5+5;int n,k;int a[maxn][5];int b[maxn];set<int>s;int main(){ while(~scanf("%d%d",&n,&k)) { for(int i=0;i<n;i++) { for(int j=0;j<k;j++) { scanf("%d",&a[i][j]); } b[i]=0; for(int j=0;j<k;j++) { b[i]+=(a[i][j]<<j);//将每个队的情况用位运算预处理为一个整数 } //printf("b= %d\n",b[i]); s.insert(b[i]);//记录所有的情况 } int x=0;//最大的可能 for(int i=0;i<k;i++) { x+=(1<<i); } bool flag=0; for(int i=0;i<=x;i++)//进行枚举 { for(int j=0;j<=x;j++) { //每个队知道的题目数量各占一半位运算下体现为i&j==0 if(s.count(i)!=0&&s.count(j)!=0&&(i&j)==0) { flag=1; break; } } if(flag) break; } if(flag) { printf("YES\n"); } else { printf("NO\n"); } } return 0;}
阅读全文
0 0
- Codeforeces868CQualification Rounds(位运算)
- Codeforces Round #438 C Qualification Rounds(暴力+位运算)
- CF868C:Qualification Rounds(思维)
- 位运算(技巧)
- 位运算(2)
- 位运算(3)
- 位运算(1)
- 位运算(2)
- 位运算知识点 (& ^ | )
- Interview(位运算)
- (6)位运算
- 位运算(1)
- & | ^ ~ << >> >>>(java位运算)
- Codeforces 868 C. Qualification Rounds (技巧)
- java 位运算(位操作)
- POJ 3748 位操作(位运算)
- 位运算符(一):C/C++位运算符
- 位运算符介绍(二):Java位运算符
- 酷狗桌面歌词效果
- 动态获取div的高度 随着窗口变化而变化 window.resize
- 机器学习 第五周 总结 知识点
- 十大Intellij IDEA快捷键(转)
- 目标跟踪之CVPR_2017_Attentional Correlation Filter Network for Adaptive Visual Tracking
- Codeforeces868CQualification Rounds(位运算)
- 浅谈 MVP in Android
- linux命令--cut
- java提高篇(42)--enum(枚举)
- C#使用ODAC查询Oracle数据库
- RogueDome03
- 手写最大堆(Java实现)
- 046 中值定理之型三(ξ与a,b不可分离;凑微法);型四(ξ η多个中值之case1:找三点 两次拉格朗日)
- 根据当前字母获取下一位 java