Codeforces 467B Fedor and New Game
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相关推荐
- codeforces 467B - Fedor and New Game
看懂题目,反正我半天没看懂... 题目要求找出能和fedor成为朋友的人数,即差异<=k 给你三个数nmk,n是士兵种类,忽略也没问题,m是选手个数(不包括fedor),k是能存在的最大差异,根 ...
- codeforces D. Fedor and coupons 贪心+优先队列
题目地址:点击打开链接 D. Fedor and coupons time limit per test 4 seconds memory limit per test 256 megabytes i ...
- CodeForces 754D Fedor and coupons
题目链接:http://codeforces.com/contest/754/problem/D 题意:给你n个优惠券,每个优惠券是一个区间,他能给这个区间的所有商品进行打折,现让你选择k个优惠券,使 ...
- Codeforces 1179D Fedor Runs for President [DP,斜率优化]
Codeforces 思路 考虑把连的那两个点中间的链提出来,那么就会变成一条链,链上的每个点挂着一棵子树的形式. 设那些子树的大小为\(S_1,S2,\cdots\),那么新加的简单路径个数就是 \ ...
- Codeforces - Fedor and coupons
题目链接:Codeforces - Fedor and coupons 先对左端点升序排序. 然后枚举要选的左端点最靠右的边,此时怎么选前面的点呢?肯定是选k个最大的右端点呀. 所以可以用个权值线段树 ...
- Codeforces 1179 D - Fedor Runs for President
D - Fedor Runs for President 思路: 推出斜率优化公式后,会发现最优点只可能来自凸斜率中的第一个元素和最后一个元素, 这两个元素不用维护凸斜率也能知道,就是第一个和上一个元 ...
- Fedor and New Game (异或运算)
题目链接:http://codeforces.com/problemset/problem/467/B 题目大意:有 m + 1 个 player 和 n 种类型的 soldiers.每个player ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
最新文章
- 通用线程: 学习 Linux LVM
- java抽象类关键字_Java之关键字abstract(抽象类与抽象方法)
- 李开复:旗下AI公司或在2021年上市,估值至少10亿美元
- python2中文导致的错误
- Python基础数据类型之set集合
- 更改结构体的内存字节对齐方式--经典
- 访问数据库_访问数据库
- Windows Mobile 6 中为开发人员提供的新功能(1)
- 对具有外部依赖的Angular服务类(service class)进行单元测试的几种方式
- win10系统,在安装masm32的时候出现DELETE operation of EXE file has failed 解决方案
- 13.MongoDB之Gridfs
- 单选框_flutter Radio 单选框
- Atitit table的读取与遍历 jquery jsoup 目录 1. atitit.gui控件的定位与选择器	1 2. 读取表格流程 遍历表格table	1 3. W3cdom标准化	1
- 火狐使用谷歌搜索_Google拒绝使用Firefox
- Vue经典开源项目汇总
- CPU 流水线的前世今生
- Oracle数据库服务重启方法
- 模式识别——第3章 判别函数法
- 触摸式开关简单入门教程
- Java基础之IO流(一)