题目连接: Light Emitting Hindenburg

大致题意:

给你n个正整数, 让你从中选出k个, 让这k个数字进行按位与操作得到的结果最大.

解题思路:

这个题是按位运算, 很容易就想到了得以二进制的形式去考虑这个题, 所以最初我将输入的数字以二进制的形式进行存储.
(bitset可以辅助存储)

AC代码:

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const int MAXN = 2e5 + 10;
bitset<30> a[MAXN]; //可以将整数转化成二进制补码形式存储.
bool vis[MAXN]; //记录该数值是否被抛弃
int main(void)
{int n, k;cin >> n >> k;for (int i = 1; i <= n; ++i) {scanf("%d", &a[i]);}for (int i = 29; i >= 0; --i) {int cou = 0; //记录当前位为1的个数for (int j = 1; j <= n; ++j) {if (a[j][i] && !vis[j]) cou++;}if (cou >= k) {for (int j = 1; j <= n; ++j) {if (!a[j][i] && !vis[j]) vis[j] = 1;}}}int res = -1;for (int i = 1; i <= n; ++i) {if (!vis[i]) res &= a[i].to_ulong();}cout << res << endl;return 0;
}
比赛后发现网上有个大佬用的两个vector数组的操作实现的, 感觉很强, 转载下.

以下代码来源于: click

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
vector<int> a, b;
int main()
{int n, k, num;cin >> n >> k;for (int i = 0; i < n; ++i) {scanf("%d", &num);a.push_back(num);}for (int i = 1 << 29; i > 0; i >>= 1) {b.clear();for (int j = 0; j < a.size(); ++j) {if (a[j] & i) b.push_back(a[j]);}if (b.size() >= k) a = b;}int res = -1;for (int i = 0; i < a.size(); ++i) {res &= a[i];}cout << res << endl;
}

END

Light Emitting Hindenburg(bitset运用)相关推荐

  1. Light Emitting Hindenburg 解题思路

    题目大意: 给你n个数,你从里面选出k个数,是他们相与(&)起来的值最大. 题目地址:https://nanti.jisuanke.com/t/45643 思考过程: 在二进制下,假设a有一位 ...

  2. 2020牛客国庆DAY1

    A.ABB: 链接:https://ac.nowcoder.com/acm/contest/7817/A 来源:牛客网 Fernando was hired by the University of ...

  3. 计算机视觉 专业术语,计算机视觉专业相关术语中英文对照5

    IC(Integrated Circuit) 集成电路 Illumination angle 照明角度 Illuminator 照明器 Image control 影像控制 Image size lo ...

  4. 基于可见光(LIFI)通信系统 的机动车智能辅助装置(课程设计)

    基于可见光(LIFI)通信系统 的机动车智能辅助装置(课程设计) 创新性 (1)解决了会车时因为驾驶员的疏忽而没有及时切换远光灯为近光灯,通过LED车灯的可见光通信途径完成智能辅助车灯远近光束切换功能 ...

  5. 计算机专业术语lcd,LCD的专业术语.pdf

    LCD的专业术语.pdf Backlight:背光. CCFL(CCFT) (Cold Cathode Fluorescent Light/Tube):冷阴极荧光灯. Composite vide 复 ...

  6. 华硕p8b75v主板说明书_主板如何接线

    一般来说,机箱里的连接线上都采用了文字来对每组连接线的定义进行了标注,但是怎么识别这些标注,这是我们要解决的第一个问题.实际上,这些线上的标注都是相关英文的缩写,并不难记.下面我们来一个一个的认识(每 ...

  7. 常见SMT极性元器件识别方法(图解)

    简 介: 这是整理自公号"电子工程师笔记"上的一篇推文 常见SMT极性元器件识别方法(图解) . 关键词: 元器件,封装极性   极性元件在整个PCBA加工过程中需要特别注意,因为 ...

  8. Arduino软件开发环境搭建

    简 介: 给出了Arduino开发软件的下载与测试过程. 关键词: Arduinon,IDE Install the Arduino Software (IDE) on Windows PCs §01 ...

  9. 计算机科学与技术专业术语

    计算机科学与技术专业术语 1.CPU 3DNow!(3D no waiting) ALU(Arithmetic Logic Unit,算术逻辑单元) AGU(Address Generation Un ...

最新文章

  1. SQL点滴24—监测表的变化(转载)
  2. Tomca的启动与关闭
  3. Learning ROS: Service and Client (C++)
  4. php实现二叉搜索树,二叉搜索树有几种实现方式
  5. (三) UART 串口通讯
  6. 计算机一级高级技师,高级工程师与高级技师职称有什么区别?快来了解一下吧...
  7. 【Hisi系列】之软件平台开发(MPP相关)
  8. 计算机关键性检测的部件是,试论计算机硬件关键技术的若干问题分析
  9. javaweb filter
  10. 3.15PMP试题每日一题
  11. Latex:IEEE Trans期刊Latex模板下载
  12. Pr 视频效果:过时
  13. django memery cache
  14. 【学习日记】使用百度深度学习平台进行深度学习
  15. wkhtmltopdf 照片不显示的问题
  16. GWAS计算BLUE值2--LMM计算BLUE值
  17. 生成式模型的发展历程
  18. Ethereum智能合约迁移到PlatON教程
  19. 内存的分配和回收实验(首次适配、下次适配、最佳适配、最坏适配)
  20. 魔界战记修复服务器,怪物猎人世界steam坏档修复方法 MHW存档备份修复方法

热门文章

  1. 代码坏的味道13:夸夸其谈未来性(Speculative Generality)
  2. 1.0 win10下curl的安装
  3. android 修改充电图标,更换图标、修改充电音...这个软件把iPhone玩成了安卓
  4. 小数取整 四舍五入
  5. html网页在图片的后面同一行追加,htmlcss
  6. 微信小程序请求php文件报错,微信小程序wx.request请求数据报错
  7. 2.4 zio入门——ZIO类型参数
  8. sdk manager extra下没有Google play billing
  9. 写字楼如何实现无线wifi短信验证登录?
  10. 戴尔微型计算机重装WIN10系统,戴尔品牌机如何重装win10系统