Codeforces Round #267 (Div. 2) B

题目:

B. Fedor and New Game

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

After you had helped George and Alex to move in the dorm, they went to help their friend Fedor play a new computer game ?Call of Soldiers 3?.

The game has (m?+?1) players and n types
of soldiers in total. Players ?Call of Soldiers 3? are numbered form 1 to (m?+?1).
Types of soldiers are numbered from 0 to n?-?1.
Each player has an army. Army of the i-th player can be described by non-negative integer xi.
Consider binary representation of xi:
if the j-th bit of number xi equal
to one, then the army of the i-th player has soldiers of the j-th
type.

Fedor is the (m?+?1)-th player of the game. He assume that two players can become friends if their armies differ in at most k types
of soldiers (in other words, binary representations of the corresponding numbers differ in at most k bits). Help Fedor and count how many
players can become his friends.

Input

The first line contains three integers nmk (1?≤?k?≤?n?≤?20; 1?≤?m?≤?1000).

The i-th of the next (m?+?1) lines
contains a single integer xi (1?≤?xi?≤?2n?-?1),
that describes the i-th player‘s army. We remind you that Fedor is the (m?+?1)-th
player.

Output

Print a single integer — the number of Fedor‘s potential friends.

Sample test(s)

input

7 3 1
8
5
111
17

output

0

input

3 3 3
1
2
3
4

output

3

题意分析:

异或一下,然后求1的个数个数就行了。比较容易的

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;

#define REP(i, s, t) for(int (i)=(s);(i)<=(t);++(i))

typedef long long LL;

int a[1005];

int main()
{
    int n, m, k;
    int mask, mm, ans;
    cin >> n >> m >> k;
    mask = (1<<n)-1;
    REP(i, 1, m+1)
    cin >> a[i];
    mm = a[m+1];
    ans = 0;
    REP(i, 1, m)
    {
        int j = (a[i]^mm)&mask;
        int cnt = 0;
        REP(k, 0, n-1)
        if ((j>>k)&1)
            ++cnt;
        if (cnt <= k)
            ++ans;
    }
    cout << ans << endl;
    return 0;
}
时间: 2024-10-13 20:48:07

Codeforces Round #267 (Div. 2) B的相关文章

Codeforces Round #267 (Div. 2) C. George and Job(DP)补题

Codeforces Round #267 (Div. 2) C. George and Job题目链接请点击~ The new ITone 6 has been released recently and George got really keen to buy it. Unfortunately, he didn't have enough money, so George was going to work as a programmer. Now he faced the follow

01背包 Codeforces Round #267 (Div. 2) C. George and Job

题目传送门 1 /* 2 题意:选择k个m长的区间,使得总和最大 3 01背包:dp[i][j] 表示在i的位置选或不选[i-m+1, i]这个区间,当它是第j个区间. 4 01背包思想,状态转移方程:dp[i][j] = max (dp[i-1][j], dp[i-m][j-1] + sum[i] - sum[i-m]); 5 在两个for循环,每一次dp[i][j]的值都要更新 6 */ 7 #include <cstdio> 8 #include <cstring> 9 #i

Codeforces Round #267 (Div. 2) C. George and Job

The new ITone 6 has been released recently and George got really keen to buy it. Unfortunately, he didn't have enough money, so George was going to work as a programmer. Now he faced the following problem at the work. Given a sequence of n integers p

Codeforces Round #267 (Div. 2)

A.George and Accommodation 题意:给定数组a,b,问b-a>=2有多少个 思路:直接模拟.. B.Fedor and New Game 题意:给定m+1个n位以内的二进制数,求前m个有多少个跟第m+1的二进制下不同位数不超过k的个数 思路:直接模拟 C.George and Job 题意:给定n个数,求k个的段,每段有m个连续得数,使得和最大 思路:直接dp,注意long long不会超内存 1 /* 2 * Author: Yzcstc 3 * Created Tim

Codeforces Round #267 (Div. 2) B. Fedor and New Game

After you had helped George and Alex to move in the dorm, they went to help their friend Fedor play a new computer game ?Call of Soldiers 3?. The game has (m?+?1) players and n types of soldiers in total. Players ?Call of Soldiers 3? are numbered for

Codeforces Round #267 (Div. 2) 水了一发 真.记录

闲着没事就水了一发DIV2,本来想新注册一个小小号来着.结果验证码一直显示不出来.于是就用小号做. 结果rank44,但是没有rating. 以下均不解释题意了. A:O(n)脑残模拟. Code: #include <cstdio> int main() { int n, a, b; scanf("%d", &n); int res = 0; while(n--) { scanf("%d%d", &a, &b); if (a +

Codeforces Round #267 (Div. 2) A. George and Accommodation

George has recently entered the BSUCP (Berland State University for Cool Programmers). George has a friend Alex who has also entered the university. Now they are moving into a dormitory. George and Alex want to live in the same room. The dormitory ha

Codeforces Round #267 (Div. 2) A

题目: A. George and Accommodation time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output George has recently entered the BSUCP (Berland State University for Cool Programmers). George has a friend Al

Codeforces Round #267 (Div. 2) C

题目: C. George and Job time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output The new ITone 6 has been released recently and George got really keen to buy it. Unfortunately, he didn't have enough m