Light Emitting Hindenburg(bitset运用)
题目连接: 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运用)相关推荐
- Light Emitting Hindenburg 解题思路
题目大意: 给你n个数,你从里面选出k个数,是他们相与(&)起来的值最大. 题目地址:https://nanti.jisuanke.com/t/45643 思考过程: 在二进制下,假设a有一位 ...
- 2020牛客国庆DAY1
A.ABB: 链接:https://ac.nowcoder.com/acm/contest/7817/A 来源:牛客网 Fernando was hired by the University of ...
- 计算机视觉 专业术语,计算机视觉专业相关术语中英文对照5
IC(Integrated Circuit) 集成电路 Illumination angle 照明角度 Illuminator 照明器 Image control 影像控制 Image size lo ...
- 基于可见光(LIFI)通信系统 的机动车智能辅助装置(课程设计)
基于可见光(LIFI)通信系统 的机动车智能辅助装置(课程设计) 创新性 (1)解决了会车时因为驾驶员的疏忽而没有及时切换远光灯为近光灯,通过LED车灯的可见光通信途径完成智能辅助车灯远近光束切换功能 ...
- 计算机专业术语lcd,LCD的专业术语.pdf
LCD的专业术语.pdf Backlight:背光. CCFL(CCFT) (Cold Cathode Fluorescent Light/Tube):冷阴极荧光灯. Composite vide 复 ...
- 华硕p8b75v主板说明书_主板如何接线
一般来说,机箱里的连接线上都采用了文字来对每组连接线的定义进行了标注,但是怎么识别这些标注,这是我们要解决的第一个问题.实际上,这些线上的标注都是相关英文的缩写,并不难记.下面我们来一个一个的认识(每 ...
- 常见SMT极性元器件识别方法(图解)
简 介: 这是整理自公号"电子工程师笔记"上的一篇推文 常见SMT极性元器件识别方法(图解) . 关键词: 元器件,封装极性 极性元件在整个PCBA加工过程中需要特别注意,因为 ...
- Arduino软件开发环境搭建
简 介: 给出了Arduino开发软件的下载与测试过程. 关键词: Arduinon,IDE Install the Arduino Software (IDE) on Windows PCs §01 ...
- 计算机科学与技术专业术语
计算机科学与技术专业术语 1.CPU 3DNow!(3D no waiting) ALU(Arithmetic Logic Unit,算术逻辑单元) AGU(Address Generation Un ...
最新文章
- SQL点滴24—监测表的变化(转载)
- Tomca的启动与关闭
- Learning ROS: Service and Client (C++)
- php实现二叉搜索树,二叉搜索树有几种实现方式
- (三) UART 串口通讯
- 计算机一级高级技师,高级工程师与高级技师职称有什么区别?快来了解一下吧...
- 【Hisi系列】之软件平台开发(MPP相关)
- 计算机关键性检测的部件是,试论计算机硬件关键技术的若干问题分析
- javaweb filter
- 3.15PMP试题每日一题
- Latex:IEEE Trans期刊Latex模板下载
- Pr 视频效果:过时
- django memery cache
- 【学习日记】使用百度深度学习平台进行深度学习
- wkhtmltopdf 照片不显示的问题
- GWAS计算BLUE值2--LMM计算BLUE值
- 生成式模型的发展历程
- Ethereum智能合约迁移到PlatON教程
- 内存的分配和回收实验(首次适配、下次适配、最佳适配、最坏适配)
- 魔界战记修复服务器,怪物猎人世界steam坏档修复方法 MHW存档备份修复方法
热门文章
- 代码坏的味道13:夸夸其谈未来性(Speculative Generality)
- 1.0 win10下curl的安装
- android 修改充电图标,更换图标、修改充电音...这个软件把iPhone玩成了安卓
- 小数取整 四舍五入
- html网页在图片的后面同一行追加,htmlcss
- 微信小程序请求php文件报错,微信小程序wx.request请求数据报错
- 2.4 zio入门——ZIO类型参数
- sdk manager extra下没有Google play billing
- 写字楼如何实现无线wifi短信验证登录?
- 戴尔微型计算机重装WIN10系统,戴尔品牌机如何重装win10系统