0
点赞
收藏
分享

微信扫一扫

hdu 4712 Hamming Distance-----随机


计算出二进制数中有多少个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);
	}
}




举报

相关推荐

0 条评论