Salem Gym
来源:互联网 发布:遗传算法 实际应用 编辑:程序博客网 时间:2024/06/05 14:18
Salem
Gym - 100814ISalem is known to be one of the best competitive programmers in the region. However, he always finds a hard time understanding the concept of the hamming distance. The hamming distance of two numbers is defined as the number of different digits in their binary representations (leading zeros are used if necessary to make the binary representations have the same length). For example the hamming distance between 12 and 5 is 2 since their binary representations are 1100 and 0101 respectively and they differ in the first and fourth positions.
Recently, Salem got a problem that he needs your help to solve. He is given Nintegers and asked to get the maximum among the hamming distances of all possible pairs of the given integers.
The first line of the input will be a single integer T representing the number of test cases. Followed by T test cases. Each test case will start with a line with single integer (2 ≤ N ≤ 100) representing the number of the integers. Each of the following N lines contains one of the integers (1 ≤ Ai ≤ 10, 000) from the list of the integers.
For each test case print one line consists of one integer representing the maximum hamming distance between all possible pairs from the given integers.
221253123
22
题目大意:两个数的hanming距离是两个数的二进制相应位置的数相同的个数。题目给一组数,求这一组数的最大hanming距离。
求hanming距离时要用到 ^ (异或),两个数的二进制相同的位置为1不同为0。还有 a=a&(a-1) 可以将a最后一位的1消除。例如:11111&11110结果为11110,11110&11101结果为11100,11100&11011结果为11000...........这样就可以知道一个数二进制有多少个1。
#include<stdio.h>int judge(int x){ int count=0; while(x){//计算x的二进制有多少个1 x=x&(x-1); count++; } return count;}int main(){ int T,a[105],t; scanf("%d",&T); while(T--){ int n; scanf("%d",&n); int max=0; for(int i=1;i<=n;i++) scanf("%d",&a[i]); for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){//两个数的二进制相同的位置的数相同为1不同为0 t=judge(a[i]^a[j]); if(t>max) max=t; } } printf("%d\n",max); }}
- Salem Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- How to create and kill processes on remote PC
- 离线安装chrome插件Postman总结
- 从《Unity5.X从入门到精通》上扒来的基础知识(一)
- Java跳出循环-break和continue语句
- 强化练习3:判断闰年
- Salem Gym
- Java连接access数据库的一点小心得
- Unique Snowflakes 详细题解
- HDU
- 图片无序预加载技术一
- Menu菜单
- UVa Live 7278
- Linux下多进程避免僵尸进程的方法
- XYNUOJ 第四次考试(STL模块)