B. Fedor and New Game(位运算)

题意:这是一道用到异或运算的题,给出的m-1个数和最后一个数进行异或运算(题中描述为:不同兵种数不超过k,即通过异或运算,数出1的个数进行比较)

题解:就按题意去做。

ACcode:

int main()

{

int n, m, k,it,a[1010];

cin >> n >> m >> k;

for (int i = 1; i <= m; i++)

cin >>a[i];

cin >> it;

int num = 0;

for (int i = 1; i <= m; i++)

{

int s = 0;

int bi = a[i] ^ it;

while (bi)

{

if (bi & 1)s++;

bi >>= 1;

}

if (s <= k)num++;

}

cout << num;

return 0;

}

原文地址:https://www.cnblogs.com/Uiney117/p/14787355.html