Fedor and New Game(位运算+模拟)

【题目链接】Problem - 467B - Codeforces

题意:给你m+1个数让你判断所给的数的二进制形式与第m+1个数不想同的位数是否小于等于k,累计答案

思路1:

统计a[i]x二进制下不同的位数有几个(cnt)若cnt <= k说明满足条件。

返回x的第j位是几:x >> j & 1

【代码实现】

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 1e5 + 10;
int a[N];int main()
{int n, m, k;cin >> n >> m >> k;for (int i = 0; i < m; i ++ ) cin >> a[i];int x, res = 0;cin >> x;for (int i = 0; i < m; i ++ )// 对应数字的二进制表示最多有 k 位不同{int cnt = 0;for (int j = 0; j < n; j ++ ){// x >> k & 1 判断x的第k位是几if((a[i] >> j & 1) != (x >> j & 1)) cnt ++;}if(cnt <= k) res ++;}cout << res;return 0;
}

思路二:既然是01二进制,又让我们统计不同的数的个数,我们可以将 x ^ a[i]:这样相同的变为了0,不同的为1,为此我们只需要统计1的个数即可。

【代码实现】

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 1e5 + 10;
int a[N];int main()
{int n, m, k;cin >> n >> m >> k;for (int i = 0; i < m; i ++ ) cin >> a[i];int x, res = 0;cin >> x;for (int i = 0; i < m; i ++ )// 对应数字的二进制表示最多有 k 位不同{int cnt = 0;int tmp = x ^ a[i];for(int j = 0; j < n; j ++){if((tmp >> j & 1) == 1) cnt ++;}if(cnt <= k) res ++;}cout << res;return 0;
}

Codeforces 467B Fedor and New Game相关推荐

  1. codeforces 467B - Fedor and New Game

    看懂题目,反正我半天没看懂... 题目要求找出能和fedor成为朋友的人数,即差异<=k 给你三个数nmk,n是士兵种类,忽略也没问题,m是选手个数(不包括fedor),k是能存在的最大差异,根 ...

  2. codeforces D. Fedor and coupons 贪心+优先队列

    题目地址:点击打开链接 D. Fedor and coupons time limit per test 4 seconds memory limit per test 256 megabytes i ...

  3. CodeForces 754D Fedor and coupons

    题目链接:http://codeforces.com/contest/754/problem/D 题意:给你n个优惠券,每个优惠券是一个区间,他能给这个区间的所有商品进行打折,现让你选择k个优惠券,使 ...

  4. Codeforces 1179D Fedor Runs for President [DP,斜率优化]

    Codeforces 思路 考虑把连的那两个点中间的链提出来,那么就会变成一条链,链上的每个点挂着一棵子树的形式. 设那些子树的大小为\(S_1,S2,\cdots\),那么新加的简单路径个数就是 \ ...

  5. Codeforces - Fedor and coupons

    题目链接:Codeforces - Fedor and coupons 先对左端点升序排序. 然后枚举要选的左端点最靠右的边,此时怎么选前面的点呢?肯定是选k个最大的右端点呀. 所以可以用个权值线段树 ...

  6. Codeforces 1179 D - Fedor Runs for President

    D - Fedor Runs for President 思路: 推出斜率优化公式后,会发现最优点只可能来自凸斜率中的第一个元素和最后一个元素, 这两个元素不用维护凸斜率也能知道,就是第一个和上一个元 ...

  7. Fedor and New Game (异或运算)

    题目链接:http://codeforces.com/problemset/problem/467/B 题目大意:有 m + 1 个 player 和 n 种类型的 soldiers.每个player ...

  8. CodeForces 375D Tree and Queries

    传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...

  9. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

最新文章

  1. 通用线程: 学习 Linux LVM
  2. java抽象类关键字_Java之关键字abstract(抽象类与抽象方法)
  3. 李开复:旗下AI公司或在2021年上市,估值至少10亿美元
  4. python2中文导致的错误
  5. Python基础数据类型之set集合
  6. 更改结构体的内存字节对齐方式--经典
  7. 访问数据库_访问数据库
  8. Windows Mobile 6 中为开发人员提供的新功能(1)
  9. 对具有外部依赖的Angular服务类(service class)进行单元测试的几种方式
  10. win10系统,在安装masm32的时候出现DELETE operation of EXE file has failed 解决方案
  11. 13.MongoDB之Gridfs
  12. 单选框_flutter Radio 单选框
  13. Atitit table的读取与遍历 jquery jsoup 目录 1. atitit.gui控件的定位与选择器 1 2. 读取表格流程 遍历表格table 1 3. W3cdom标准化 1
  14. 火狐使用谷歌搜索_Google拒绝使用Firefox
  15. Vue经典开源项目汇总
  16. CPU 流水线的前世今生
  17. Oracle数据库服务重启方法
  18. 模式识别——第3章 判别函数法
  19. 触摸式开关简单入门教程
  20. Java基础之IO流(一)

热门文章

  1. 为什么相爱的人不能在一起
  2. 百度前端技术学院任务之JS篇
  3. 全球Top 1000计算机科学家h指数公布:中国53位学者上榜!
  4. 简述ip地址的abc类如何划分_IP地址如何分类 ?ABC类IP是怎么划分的?
  5. android app 安装后的名称
  6. 常见的几种用户行为分析模型(一)
  7. 经典歌剧推荐:费加罗的婚礼
  8. 提高学习效率:必备学习软件推荐
  9. iView侧边栏(Sider)宽度修改
  10. Clion和STM32CubeMx新建项目