#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int p, n;
int a[100];
bool visit[(1<<15)];
int ans;
int count(int n){
int sum = 0;
while(n){
if(n&1){
sum++;
}
n=(n>>1);
}
return sum;
}
int main(){
int t;
scanf("%d%", &t);
while(t--){
scanf("%d%d", &p, &n);
ans = 15;
int x,num=0;
for(int i = 0; i < n; i++){
for(int j = 0; j < p; j++){
scanf("%d", &x);
num = (num<<1) + x;
}
a[i] = num;
num = 0;
}
int max = ((1<<p)-1);
for(int i = 1; i <= max; i++){
int bits = count(i);
if(bits>=ans) continue;
memset(visit, 0, sizeof(visit));
int j;
for(j = 0; j < n; j++){
int ele = a[j]&i;
if(visit[ele]){
break;
}else{
visit[ele] = true;
}
}
if(j==n){
ans = bits;
}
}
cout<<ans<<endl;}
return 0;
}
参考了
点击打开链接
uva 11205
最新推荐文章于 2019-07-14 02:35:37 发布