计算出二进制数中有多少个1:
数据范围太大,想到可以随机
如果你在第一次调用rand()之前没有调用srand(),那么系统会为你自动调用srand()。------百度rand
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<time.h>
using namespace std;
const int N = 1e5+10;
int p[N];
int get_one(int x)
{
int sum=0;
while(x){
x&=(x-1);
sum++;
}
return sum;
}
int main()
{
int t;
int i,j,k;
scanf("%d",&t);
//srand((unsigned)time(NULL));
while(t--){
int n;
scanf("%d",&n);
int m=100000000;
for(i=0;i<n;i++)
scanf("%x",&p[i]);
for(i=0;i<=500000;i++){
int t1=rand()%n;
int t2=rand()%n;
if(t1!=t2)
m=min(m,get_one(p[t1]^p[t2]));
}
printf("%d\n",m);
}
}