cf769D(枚举位或运算)

题目链接:http://codeforces.com/problemset/problem/769/D

 

题意:求给出的 n 个数中有多少对数字的二进制形式恰好有 k 位不同

 

思路:两个数a, b的二进制形式恰好 k 位不同即 a ^ b 中 1 的个数,那么可以枚举.注意 n 为 1e5 枚举 ai 会tle,不过 ai 的范围是 1e4,显然有大量重复的元素;

可以先去重并记录每个元素出现的次数,再枚举每个元素即可;

 

代码:

 1 #include <iostream>
 2 #include <stdio.h>
 3 #define ll long long
 4 using namespace std;
 5 
 6 const int MAXN = 1e5 + 10;
 7 ll a[MAXN], vis[MAXN];
 8 
 9 int BitCount(unsigned int n){//求 n 二进制中 1 的数目
10     unsigned int tmp = n - ((n >> 1) & 033333333333) - ((n >> 2) & 011111111111);
11     return ((tmp + (tmp >> 3)) & 030707070707) % 63;
12 }
13 
14 int main(void){
15     int n, k, x, indx = 0;
16     ll ans = 0;
17     scanf("%d%d", &n, &k);
18     for(int i = 0; i < n; i++){
19         scanf("%d", &x);
20         if(!vis[x]) a[indx++] = x;
21         vis[x]++;
22     }
23     for(int i = 0; i < indx; i++){
24         if(k == 0){
25             ans += (vis[a[i]] - 1) * vis[a[i]] / 2;
26             continue;
27         }
28         for(int j = i + 1; j < indx; j++){
29             int cnt = a[i] ^ a[j];
30             if(k == BitCount(cnt)) ans += vis[a[i]] * vis[a[j]];
31         }
32     }
33     printf("%lld\n", ans);
34     return 0;
35 }
View Code

 

转载于:https://www.cnblogs.com/geloutingyu/p/6979081.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core 同时支持多种认证方式

前言上次&#xff0c;我们实现了《ASP.NET Core 自定义认证》&#xff1a;services.AddAuthentication(option > {option.DefaultAuthenticateScheme DemoAuthenticationOptions.Scheme;option.DefaultChallengeScheme DemoAuthenticationOptions.Scheme;}).AddDemoAuthen…

Linux shell 编程(七):流程控制语句

流程控制语句 在shell中如果在终端输入多个命令&#xff0c;如果以&分隔则将命令放入后台执行&#xff0c;如果以;分隔&#xff0c;则表示一个命令集合。shell允许使用逻辑操作符&&和||来作为命令分隔符&#xff0c;他们分别时AND和OR. && 如果前面命令执行…

多线程锁--怎么理解Condition

在java.util.concurrent包中&#xff0c;有两个很特殊的工具类&#xff0c;Condition和ReentrantLock,使用过的人都知道&#xff0c;ReentrantLock&#xff08;重入锁&#xff09;是jdk的concurrent包提供的一种独占锁的实现。它继承自Dong Lea的 AbstractQueuedSynchronizer&a…

.NET 8 SDK安装包可以下载了

今早在一个技术交流群看到有.NET 8的安装交流&#xff0c;站长下载了&#xff0c;把安装过程记录了&#xff0c;总结是&#xff1a;目前还无法 正常使用 .NET 8 SDK&#xff0c;虽然可以正常下载、安装&#xff0c;但宇宙第一IDE VS还尚未支持&#xff0c;也许站长打开方式不对…

VUE3中实现word的预览功能

安装docx-preview cnpm i docx-preview --save 在vue文件中使用 <div ref"refWord" v-if"showType word" /> <script setup name"ResPreviewBox">import { ref } from vue import { httpGet, httpGetBlob } from ../utils/requ…

css定位positon

值描述absolute 生成绝对定位的元素&#xff0c;相对于 static 定位以外的第一个父元素进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 fixed 生成绝对定位的元素&#xff0c;相对于浏览器窗口进行定…

chrome插件网站

chrome插件网站 http://chromecj.com/

VUE3+pdfh5实现预览Pdf文件

安装插件 npm install pdfh5 使用 <template><el-container class"resPreview"><div ref"refPdf"/></el-container> </template><script setup name"PreviewBox">import { ref } from vue import { http…

TODO:从数据库中随机抽取一条记录

TODO&#xff1a;从数据库中随机抽取一条记录1.最直接&#xff0c;最粗暴的方法先计算记录的总数&#xff0c;然后选择一个从0到记录总数之间的随机数n&#xff0c;利用skip跳过n条记录&#xff0c;这是效率低下的的方法&#xff0c;首先的记录总数&#xff0c;在用skip会很耗时…

5gnr帧结构特点有哪些_PLC控制柜有哪些结构特点呢?

金陵奇峰PLC控制柜是指可编程控制柜&#xff0c;控制柜指成套的控制柜,可实现电机,开关的控制的电气柜。金陵奇峰PLC控制柜具有过载、短路、缺相保护等保护功能。下面奇峰小编来为大家介绍一下PLC控制柜有哪些特点。PLC控制柜特点与优势&#xff1a;1、PLC控制柜是指可编程控制…

基于 .NET 6 的轻量级 Webapi 框架 FastEndpoints

大家好&#xff0c;我是等天黑。FastEndpoints 是一个基于 .NET 6 开发的开源 webapi 框架&#xff0c;它可以很好地替代 .NET Minimal APIs 和 MVC &#xff0c;专门为开发效率而生&#xff0c;带来了全新的开发模式和编码体验。另外对于 .NET 的中间件、认证、授权、日志&…

OO学习总结(二)

第五次作业&#xff1a;多线程电梯 多线程的同步和控制 在本次作业里&#xff0c;请求发生器不断往请求队列里加入电梯请求&#xff0c;主调度器不停将电梯请求分发给从调度器&#xff0c;从调度器不断读取请求来操控电梯运行&#xff0c;因而这三者之间存在同步关系。请求发生…

js导出PPT -- pptxgen使用方法

pptxgen使用方法 下载地址 https://codechina.csdn.net/mirrors/gitbrent/PptxGenJS?utm_sourcecsdn_github_accelerator ## 1. 文件引入 <script src"../js/pptxgen.bundle.js"></script> <script src"../js/jszip.min.js"></scr…

记录最近的一些遇到的前端面试题

HTML部分&#xff1a;1.问&#xff1a;DOCTYPE是什么。 答&#xff1a;查看w3school的详细解释http://www.w3school.com.cn/ta...&#xff1a;DTD, SGML) 2.问&#xff1a;有哪些行内元素、有哪些块级元素。margin属性是否对行内元素有所作用。 答&#xff1a;块级元素常用的有…

【mysql】mysql优化

一&#xff0c;表设计   1.1. E-R&#xff08;entity relation&#xff09;实体关系图     长方形 实体 表     椭圆形 属性 字段     菱形 关系 一对一 多对一 属于 多对多   1.2. 三范式标准     原子性       个人信息       省市县乡镇  …

3d数学基础图形与游戏开发 英文版_1850款文字标题字幕条,AE图形预设包,logo生成神器...

2019最新1850款组文字LOGO动画预设&#xff0c;一键生成&#xff01;包含图形元素/字幕/logo/动画转场/背景等所有的元素都支持AE和PR所有元素的颜色、位置、大小、文字、Logo等都可以修改&#xff0c;包含GIF动图预览&#xff0c;方便查找使用&#xff0c;一键生成狂拽炫酷屌炸…

什么?WPF 不支持 SVG ?

什么&#xff1f;WPF 不支持 SVG &#xff1f;控件名&#xff1a;SharpVectors作者&#xff1a;Elinam LLC (Japan)项目地址&#xff1a; https://github.com/ElinamLLC/SharpVectors什么是SVG&#xff1f;SVG 指可伸缩矢量图形 (Scalable Vector Graphics)&#xff1b;SVG 用…

Vue实现pptx在线预览

PPTX在线预览&#xff0c;使用jquery的插件《PPTXjs》&#xff0c;纯前端实现pptx转html进行展示 1.在PPTXjs官网下载插件&#xff0c;并在index.html内引入 <link rel"stylesheet" href"/PPTXjs/css/pptxjs.css"> <link rel"stylesheet&quo…

手写数字识别

深度学习:一、感知器S型神经元sigmoid fuction:1/(1exp(-z)) ![image](https://yqfile.alicdn.com/2e0144aba1df89e4ad5437e51aa21abc052025e5.png)二、神经网路这是一个三层神经网络输入层 隐藏层 输出层三、手写数字识别神经网络一共四层神经网络&#xff0c;第一层是以28*28…

5.1 入门整合案例(SpringBoot+Spring-data-elasticsearch) ---- good

本节讲解SpringBoot与Spring-data-elasticsearch整合的入门案例。 一、环境搭建 新建maven项目&#xff0c;名字随意 pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <…