codeforces 467B Fedor and New Game 解题报告

题目链接:http://codeforces.com/contest/467/problem/B

题目意思:有 m + 1 个 player 和 n 种类型的 soldiers。每个player被赋予一个数xi,然后将xi 看成二进制数,规定第 j 位 如果为1,表示这个 player 有j 这种类型的soldiers。Fedor 是 第 m + 1 个player,问他能跟前面 m 个players 成为 friends 的 人数。成为friends 的条件是被比较的两个人的不同soldiers数不得多于 k 个。

好容易想到方法,就是异或之后统计1的个数。不过数组开小了,被人 hack !而且比赛时间只有一小时,校园网断网!有进步的是,有时间做了下C,虽然是错掉了。

太粗心了,留个纪念吧~~~

 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring> using namespace std;  + ; int a[maxn]; int main() {     int n, m, k;     while (scanf("%d%d%d", &n, &m, &k) != EOF)     {         ; i < m; i++)             scanf("%d", &a[i]);         scanf("%d", &a[m]);         ;         ; i < m; i++)         {             int tmp = a[i] ^ a[m];             ;             )             {                 )                     cnt++;             }             if (cnt <= k)                 ans++;         }         printf("%d\n", ans);     }     ; }