牛客 河南萌新联赛2024第(四)场:河南理工大学 B题

news2024/9/24 19:16:00

比赛链接:
 

河南萌新联赛2024第(四)场:河南理工大学_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com)

B题:小雷的神奇电脑
 

题目描述:

小雷有一台特殊的电脑,这台电脑有一个 m位的寄存器,能够存储一个m 位的二进制数。换句话说,这台电脑可以存储一个从0到 2^m -1之间的任何非负整数。
小雷还有一组n个非负整数的列表(中每一个数都严格小于2^m)。他想要找出这个列表中任意两个不同的数(下标不同就行),将它们放入电脑中进行同或运算后,得到的结果是所有可能的同或结果中最大的那个。
同或运算解释
同或运算(XNOR)是一种逻辑运算,它接受两个二进制位作为输入,并根据以下规则产生输出:
• 如果两个输入位相同,则输出为111;
• 如果两个输入位不同,则输出为000。
对于两个整数A和B,它们的同或结果是通过将A和B转换为二进制表示,然后对每个位进行同或运算得到的。

输入描述:

第一行输入 n m (2≤n≤200000,1≤m≤30)
接下来是n个整数a1,a2,a3……an(保证ai <2^m)
 

输出描述:

输出一个整数,这个整数是在这个数组任意两个数同或的最大值

示例1

输入

复制

4 3
7
5
1
3

输出

复制

5

说明

1在这台电脑中为001,3在这台电脑中为011,同或为101=5。


思路讲解:
 

这道题要我们求同或的最大值,我们都知道同或是二进制位运算,同或呢是异或的非,因此,我们有知道1^a 等于 a的非,所以呢,只需要将两数异或然后再与全1的数即(2的m次幂-1 )进行异或就可以得到 两数同或得结果了。 
知道了如何计算同或,那么怎么才行使得同或的结果最大呢,我们都知道,同或运算的规则是相同为1,那么如何使结果最大呢,我们就让数字从小到大进行排序,然后相邻的两数进行同或即可,
  观察可可以发现,相邻的同或结果才是最大的,相邻两数位数最接近
 

代码实现:

#include<bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n,m;

    cin>>n>>m;

    vector<int> a(n);

    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }

    sort(a.begin(),a.end());

    int ans=0;

    for(int i=1;i<n;i++)
    {
        ans=max(ans,((1<<m)-1)^a[i]^a[i-1]);
    }

    cout<<ans<<endl;

    return 0;
}

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

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

相关文章

搜维尔科技:如何使用 SenseGlove Nova 在其“CAVE”投影室中操纵虚拟物体

AVR 创建了一个创新的基于 PC 的多面沉浸式环境&#xff0c;参与者完全被虚拟图像和声音包围。 需要解决的挑战&#xff1a; 传统的 VR 系统通常缺乏逼真的触觉反馈&#xff0c;限制了用户的沉浸感。AVR Japan 旨在通过将触觉技术融入其 CAVE 系统来解决这一挑战&#xff0c;使…

【8-9月份唯一机械电气计算机主题的IEEE会议】第七届机电一体化与计算机技术工程国际学术会议(MCTE 2024,8月23-25)

由广东博士创新发展促进会、输变电装备技术全国重点实验室联合主办&#xff0c;重庆大学电气工程学院、AEIC学术交流中心协办的第七届机电一体化与计算机技术工程国际学术会议&#xff08;MCTE 2024&#xff09;将于2024年8月23-25日在中国广州隆重举行。 大会诚挚邀请您投递相…

学习日志8.7--Security Zone防火墙安全区域

安全区域实验拓扑开始之前先通过一台主机和防火墙相连&#xff0c;设置主机的IP地址和网关&#xff0c;开启防火墙设置防火墙接口g1/0/1的IP地址为192.168.1.254&#xff0c;将防火墙设置为主机的网关&#xff0c;尝试能不能用主机ping通防火墙。尝试之后&#xff0c;发现失败&…

蚂蚁CodeFuse代码大模型技术解析:基于全仓库上下文的代码补全

背景 2023年CodeFuse完成了百亿级别的代码大模型从0到1的预训练&#xff0c;配合指令微调、量化部署等一系列配套技术&#xff0c;成功将AI大模型能力应用到多个下游研发场景&#xff0c;助力生产提效。在众多下游产品中&#xff0c;CodeFuse代码补全插件直接触及研发过程中最…

性能测试趋势 2024

效率。其主要目标是确保软件满足性能要求并提供令人满意的用户体验。 有效的性能测试需要仔细的规划、真实的场景以及使用适当的工具来模拟真实世界的条件。定期进行性能测试有助于确保软件系统能够处理不同的工作负载并提供积极的用户体验。性能测试的未来正在受到技术发展的…

SSL证书配置

SSL证书配置 证书申请nginx 配置ssl证书 今天群友发现我的博客证书过期了&#xff0c;重新申请一个免费的部署一下 证书申请 点击创建证书 绑定对应的域名&#xff0c;选择快捷签发&#xff0c;点击提交审核 点击验证&#xff0c;如果购买的域名和服务器都在同一个账号下&…

WPF学习(7)- Control基类+ContentControl类(内容控件)+ButtonBase基类

前面给大家介绍完了WPF所有的布局控件&#xff0c;属性以及使用案例&#xff0c;从这里咱们就开始学下内容控件。 Control基类 Control是许多控件的基类。比如最常见的按钮&#xff08;Button&#xff09;、单选(RadioButton)、复选&#xff08;CheckBox&#xff09;、文本框…

AIGC大模型实践总结(非常详细)零基础入门到精通,收藏这一篇就够了

大模型浪潮席卷全球&#xff0c;在各行各业中的重要性愈发凸显&#xff0c;呈现出一股不可逆转的发展趋势。这一年本人所在业产技也在这一过程中持续探索和尝试AIGC。本文一方面是对AIGC实践的总结回顾&#xff0c;同时也是本人学习实践AIGC过程中一些笔记、心得分享。因个人能…

Linux云计算 |【第二阶段】CLUSTER-DAY4

主要内容&#xff1a; 块存储应用案例&#xff08;快照、快照回滚、快照克隆&#xff09;、分布式文件系统&#xff08;文件系统的构成&#xff1a;inode和block&#xff0c;创建存储池实现inode和block&#xff09;、对象存储&#xff08;radosgw&#xff09; 补充&#xff1…

C++ STL与string类

一 什么是STL&#xff1f; STL&#xff0c;全称是标准模板库&#xff08;Standard Template Library&#xff09;&#xff0c;是C标准库的一部分。STL提供了一些常用的数据结构和算法&#xff0c;帮助开发者更方便、高效地编写代码。通过使用STL&#xff0c;开发者不需要重复造…

吴恩达机器学习笔记 三十九 协同过滤的TensorFlow实现

TensorFlow的一个优点&#xff1a;可以自动算出成本函数的导数 如上图&#xff0c;设 f( x ) wx&#xff0c;成本 J 为(wx - 1)^2&#xff0c;用GradientTape()这个函数&#xff0c;TensorFlow会记录计算成本J所需的操作序列&#xff0c;保存在 tape 中。 dJdw为自动计算出的导…

图片转文字怎么操作?教你几招图片转文字小妙招

在日常的工作学习中&#xff0c;我们每天可能会接触到大量的图片资料&#xff0c;无论是会议纪要、书籍扫描页、还是网络上的有用信息截图&#xff0c;如果能快速将这些图片中的文字提取出来&#xff0c;无疑将极大提升我们的工作效率。下面给大家分享几种能够将图片转换成文字…

AI学习记录 - 自注意力机制的计算流程图

过段时间解释一下&#xff0c;为啥这样子计算&#xff0c;研究这个自注意力花了不少时间&#xff0c;网上很多讲概念&#xff0c;但是没有具体的流程图和计算方式总结…

多线程 01:Java 多线程学习导航,线程简介,线程相关概念的整理

一、概述 记录时间 [20240807] 立秋 & 128 创作纪念日 本文是关于 Java 多线程学习的导航篇&#xff0c;总览了有关多线程学习的几个模块。简单介绍了一些与线程相关的基本概念&#xff0c;便于后续展开多线程的学习。 前置知识&#xff1a;Java 基础篇&#xff1b;Java 面…

腾讯云AI代码助手的实用性能以及带给开发者的便捷开发陪伴

腾讯云AI代码助手的实用性能以及带给开发者的便捷开发陪伴 前言一、开发环境介绍二、腾讯云AI代码助手使用实例1 一键代码补全2 与腾讯云ai代码助手对话3 直接对源码进行注释&#xff0c;查错 三 获得的帮助与提升四 对腾讯云AI代码助手的建议总结 前言 在日常的编程工作的生活…

SQL报错注入之updatexml

目录 1.updatexml报错原理 2.判断是否有注入点 我们在地址栏中输入?id1 我们在地址栏中输入?id1-- 3.updatexml报错注入 3.1爆库名 3.2爆表名 3.3爆字段名 3.4爆数据 1.updatexml报错原理 updatexml(xml_doument,XPath_string,new_value) 第一个参数&#xff1a;XML…

07-软件参数的基本配置

1.设置交叉 2.Design insight 关闭 3.数据保存设置 4.原理图设置 5.PCB-General设置 PCB-Board Insight Modes设置 PCB-Board Insight Color Overrides PCB-DRC Violations Display PCB-Interactive Routing PCB-Defaults

【C++】C++11的新特性 — 线程库 ,原子操作 , 条件变量

勇敢就是接受发生在你身上的事&#xff0c;并把它尽力做到最好。 -- 约翰・欧文 -- C11的新特性 1 线程1.1 线程概念1.2 C中的线程1.3 线程并行1.4 锁 2 原子操作3 条件变量Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下…

最短路问题中的bellman-ford算法

最短路问题中的bellman-ford算法 题目 如果要处理单源最短路问题当中存在负权边的&#xff0c;那么就需要用到 bellman-ford算法和SPFA算法&#xff0c;一般情况下都是用 SPFA算法&#xff0c;除了有边数限制的情况只能用bellman-ford算法&#xff0c;比如下面这种 题目 给定…

SVG入门指南

前言 SVG 是一种使用 XML 描述 2D 图形的语言&#xff0c;与传统前端 DOM 开发比较类似&#xff0c;本文尝试总结一下 SVG 的基本用法。 基本图形绘制 与 canvas 不同&#xff0c;svg 使用声明式的方式来绘制图形&#xff0c;比如绘制一个矩形&#xff1a; <svg width&q…