Codeforces Round 456 (Div. 2) - B. New Year‘s Eve (位运算,Bitsmasks)

由于格里莎去年表现良好,新年前夕,戴德-莫罗兹带着一大包礼物来看望他!袋子里装着 n 颗来自老式面包店的糖果,每颗糖果都按照口味从 1 到 n 贴上标签。没有两颗糖果的口味是相同的。

糖果的选择直接影响到格里莎的幸福感。我们可以认为他应该吃最好吃的糖果 --但不是,节日的魔力颠覆了一切。重要的是美味的 xor 和,而不是普通的和!

整数序列 a 1 , a 2 , . . . , a m a_1, a_2, ..., a_m a1,a2, ...,am 的异或和定义为其所有元素的异或。在这里插入图片描述

Ded Moroz 警告格里莎他还有更多的房子要去,所以格里莎可以从袋子里拿走 不超过 k 的糖果。帮助格里沙确定他能获得的最大 xor 和(最大 xor 和意味着最大的快乐!)。

输入
唯一字符串包含两个整数 n n n k ( 1 ≤ k ≤ n ≤ 1 0 18 ) k ( 1 ≤ k ≤ n ≤ 10^{18} ) k(1 kn 1018)

输出
输出一个数字 —— 最大可能的异或和。


  • 在k = 1的时候,我们只能够选择一个数,那怎么选才能最大 ? 当然直接选最大的。

  • 在k > 1的时候。
    此处明确异或的性质,即二进制数位相同为0,不同为1。
    如果我们想要一个数最大,那么就是要让这个数的二进制数位有更多的1,在这里如果我们找到小于n的最大的2的m次方数,那么这个数表示出来就是: ( 100000000 … 000 ) 2 (100000000 \dots 000)_2 (100000000000)2,那么我们想要这个数的所有数位都变成1该怎么办 ?
    只需要让 ( 2 m ) (2^m) (2m) X O R XOR XOR ( 2 m − 1 ) (2^m - 1) (2m1)
    这里的过程就是两个二进制数相互异或: ( 1000000 … 0000 ) 2 (1000000 \dots 0000)_2 (10000000000)2 X O R XOR XOR ( 0111111 … 1111 ) 2 (0111111 \dots 1111)_2 (01111111111)2
    注意这里 k k k 大于等于2,那么一定能取得两个数,并且 2 m 2^m 2m 2 m − 1 2^m-1 2m1 当然都是小于等于 n n n 的,所以这两个数一定能够取到。

CODE:

#include<bits/stdc++.h>
using namespace std;
#define ll long longint lowbit(ll x){return x&-x;
}int main(){ll n,k;cin >> n >> k;if(k == 1){cout << n << endl;return 0;}int l = 0,r = 60;while(l < r){int mid = l + r + 1 >> 1;if((1ll << mid) <= n)l = mid;else r = mid - 1;}cout << (1ll << l+1)-1 << endl;return 0;
}

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

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

相关文章

controllor校验body字段非空

1、想要字段非空&#xff1a;字段加上注解 NotBlank NotNull Data public class UpdateQcStateParam {NotBlankNotNullApiModelProperty(value "er")private String orderType;NotBlankNotNullApiModelProperty(value "tr")private String orderSerialNo…

[CR]厚云填补_M3R-CR Dataset and Align-CR

Multimodal and Multiresolution Data Fusion for High-Resolution Cloud Removal: A Novel Baseline and Benchmark Abstract 去云(Cloud Removal)是遥感领域的一个重要且具有挑战性的问题&#xff0c;近年来在这一领域取得了显著进展。两个主要问题仍然阻碍着CR的发展&#…

WebRTC实现多人通话-Mesh架构【保姆级源码教程】

一、Mesh架构 WebRTC&#xff08;Web Real-Time Communications&#xff09;中的Mesh架构是一种将多个终端之间两两进行连接&#xff0c;形成网状结构的通信模式。以下是关于WebRTC的Mesh架构的详细解释&#xff1a; 基本概念&#xff1a;在Mesh架构中&#xff0c;每个参与者…

车载VLAN的划分方法

文章目录 车载VLAN的划分方法车载VLAN的具体应用场景车载VLAN和传统的以太网VLAN有什么区别?如何在车载网络中部署VLAN?车载VLAN的配置需要考虑哪些因素?车载VLAN的划分方法 车载VLAN的划分方法需要根据整车的实际需求进行,以下是一些常见的划分方法: 按功能域划分:将车…

5 shell编程实战 之 expr用法大全

expr的用法大全1 expr用于计算 运算符及用于计算的数字左右2边至少有一个空格 否则会报错 使用乘号时 必须用反斜线转义 [rootlocalhost ~]# expr 2 * 2 4 2 用$()将计算表达式括起来 [rootlocalhost ~]# i5 [rootlocalhost ~]# i$(expr $i 6 ) [rootlocalhost ~]# echo $i…

map、set底层封装模拟实现(红黑树)

文章目录 一、红黑树1.1红黑树的规则&#xff1a;1.2红黑树的插入操作1.2.1不需要旋转&#xff08;如果叔叔存在且为红,这里的C表示孩子&#xff0c;P表示父亲&#xff0c;U表示叔叔&#xff0c;G表示祖父&#xff09;&#xff0c;包含四种情况&#xff0c;无论孩子在哪里&…

对XYctf的一些总结

对XYctf的一些总结 WEB 1.http请求头字段 此次比赛中出现的&#xff1a; X-Forwarded-For/Client-ip&#xff1a;修改来源ip via&#xff1a;修改代理服务器 还有一些常见的字段&#xff1a; GET&#xff1a;此方法用于请求指定的资源。GET请求应该安全且幂等&#xff0c…

202003青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 运行下方代码段,输出的结果是(   )。 a=(1,2,3)print(type(a))A :<class ‘float’> B :<class ‘int’> C :<class ‘str’> D :<class ‘tuple’> 正确答案:D 试题解析: 第 2 题 【单选题】 content.txt中原来的内容…

企业想做新媒体矩阵怎么做?百家号,公众号,视频号,抖音,小红书等通用搞流量玩法参考

前言&#xff1a;这是白杨SEO原创第528篇。为什么想到写这个&#xff1f;因为很多企业或个人不知道在平台搞流量除了质量&#xff0c;还有一种方法就是人海战术&#xff0c;用数量取胜。今天简单分享一下&#xff0c;也许会给你启发&#xff0c;仅供参考。 分享大纲&#xff1…

雷军-2022.8小米创业思考-5-选择大于努力;倒在黎明前;互联网思维

第五章 我对互联网思维的理解 我的科技职业生涯起源于金山。金山作为一家老牌软件公司&#xff0c;在互联网时代似乎有些跟不上节奏。早年的金山也曾做过两次互联网转型。第一次是1999年年初成立卓越事业部&#xff0c;开始互联网业务尝试&#xff0c;后来又拆分成立卓越网。第…

“前人种树,后人乘凉”:【薪象营】五一探访活动弘扬传统美德

在五一劳动节这一天&#xff0c;唐刚携带【唐江军】的前成员&#xff0c;前往广州开展了一场特殊的慈善探访活动。这不仅是一个简单的慈善活动&#xff0c;更是唐刚希望向新成立的【薪象营】传承的一种精神和行动典范。 精神传承与实际行动 唐刚&#xff0c;【唐江军】的发起人…

3D模型实时变形算法

最近&#xff0c;在尝试渲染一些奇怪的形状后&#xff0c;我陷入了计算机图形学的困境。事实证明&#xff0c;对于我试图解决的具体问题&#xff0c;没有现有的选项完全适合我想要做的事情。几周后&#xff0c;我终于带着一些答案再次浮出水面&#xff0c;写了很多行代码&#…

webpack4和webpack5区别1---loader

webpack4处理图片和字体的loader file-loader file-loader的作用是处理webpack中的静态资源文件。File Loader可以将各种类型的文件&#xff0c;如图像、字体、视频等转换为模块并加载到Web应用程序中。它通过import或require语句引入文件资源&#xff0c;并将其放置在输出目…

​​【收录 Hello 算法】3.5 小结

目录 3.5 小结 1. 重点回顾 2. Q & A 3.5 小结 1. 重点回顾 数据结构可以从逻辑结构和物理结构两个角度进行分类。逻辑结构描述了数据元素之间的逻辑关系&#xff0c;而物理结构描述了数据在计算机内存中的存储方式。常见的逻辑结构包括线性、树状和网状等。…

【蓝桥杯备赛国赛】5-5

文章目录 求阶乘双子数 求阶乘 求阶乘 分析k的范围&#xff0c;10的18次方。这个数字很大 想要末尾有0的存在必须要2和5&#xff0c;但是通过分析2的数目应该是远远多于5的&#xff0c;所以只要5的数目够多即可。所以for循环的层次也是10的九次方以上&#xff0c;必然会超时&…

优雅处理返回信息状态码:Result对象在Spring Boot中的应用

前言 在开发过程中&#xff0c;处理返回的信息状态码是一个重要的问题&#xff0c;尤其是在大型项目中。为了统一处理这些状态码&#xff0c;我在Spring Boot中创建了一个名为Result的Java对象&#xff0c;用于封装返回的信息和状态码。在本文中&#xff0c;我将分享如何实现这…

面试经典150题——判断子序列

面试经典150题 day26 题目来源我的题解方法一 双指针方法二 动态规划 题目来源 力扣每日一题&#xff1b;题序&#xff1a;392 我的题解 方法一 双指针 分别使用一个指针控制两个字符串的遍历&#xff0c;当两个指针的位置的字符相同时&#xff0c;同时移动两个指针&#xf…

【信息系统项目管理师知识点速记】资源管理:规划资源管理

13.3 规划资源管理 定义&#xff1a; 规划资源管理是定义如何估算、获取、管理和利用团队以及实物资源的过程。 作用&#xff1a; 确定适用于项目资源的管理方法和管理程度。 输入&#xff1a; 项目章程项目管理计划 质量管理计划范围基准项目文件 需求文件项目进度计划风险…

python基础---垃圾回收

垃圾回收 Python的机制 小整数对象池 Python为了优化速度使用了小整数对象池, 避免整数频繁申请和销毁 Python的[-5, 256]这些整数的对象提前建立好了, 不会被垃圾回收, 在Python里面所有的这一些数据实际使用的是同一个对象, 单个的字母也是这样的 如果是一个字符串, 这一…

【算法系列】链表

目录 常用技巧 常用操作 leetcode/牛客题目 一、移除链表元素 二、反转链表 三、链表的中间结点 四、返回倒数第k个节点 五、合并两个有序链表 六、链表分割 七、链表的回文结构 八、相交链表 九、环形链表 十、环形链表 II 十一、随机链表的复制 十二、两数相加…