codeforces round #438 C. Qualification Rounds

来源:互联网 发布:淘宝买家怎么发优惠券 编辑:程序博客网 时间:2024/05/21 05:41

传送:http://codeforces.com/contest/868/problem/C

想到用二进制去枚举每一行的状态,若存在两个二进制数相与等于0,则输出yes

#include<iostream>#include<cstring>#include<cstdlib>#include<algorithm>#define maxn 100005using namespace std;int a[16];int main(){int n,k;int t,sum,m;while(cin>>n>>k){memset(a,0,sizeof(a));for(int i=0;i<n;i++){m=1<<(k-1);sum=0;for(int j=0;j<k;j++){cin>>t;sum+=t*m;m/=2;}a[sum]++;}int flag=0;for(int i=0;i<(1<<k);i++){if(a[i]!=0){for(int j=0;j<(1<<k);j++){if(a[j]!=0&&((i&j)==0)){flag=1;cout << "YES\n";break;}}}if(flag)break;}if(!flag)cout << "NO\n";}}