hdu4712-随机化算法

随机化算法是一种随机生成结果答案正确或者错误凭运气的疯狂提交,这种做法很容易让工作人员拿刀砍死你接下来一题就是随机化算法题

题目大意:就是求这组数中求哪两个值的异或最小

直接随机过

题目链接


#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int mx = 1e5;
int a[mx+5];
int get_one(int x){
	int ans = 0;
	while(x){
		if(x&1) ans++;
		x >>= 1;
	}
	return ans;
}
int main(){
	int t,n;
	scanf("%d",&t);
	while(t--){
		time(0);
		int n;
		scanf("%d",&n);
		for(int i = 1; i <= n; i++)
			scanf("%x",&a[i]);
		int ans = 80;
		for(int i = 1; i <= mx; i++){
			int x = rand()%n+1;
			int y = rand()%n+1;
			while(y == x)
				y = rand()%n+1;
			int sum = a[x]^a[y];
			ans = min(ans,get_one(sum));
		}
		printf("%d\n",ans);
	}
	return 0;
}


你可能感兴趣的:(随机化)