登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
科技
›
【题解】CF2077B Finding OR Sum
【题解】CF2077B Finding OR Sum
[ 复制链接 ]
搜娲瘠
2025-6-8 22:23:20
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
本文发布于博客园和洛谷,若您在其他平台阅读到此文,请前往博客园获得更好的阅读体验。
跳转链接:https://www.cnblogs.com/TianTianChaoFangDe/p/18771334。
思路
关于此题,我们首先对 \(n | x\) 变一下形,\(n | x = n + (x \& \sim n)\),也就是把 \(n\) 和 \(x\) 同时为 \(1\) 的位在 \(x\) 中删掉,这样的话,为 \(1\) 的位要么在 \(n\),要么在 \(x\),因此我们可以得出 \((x \& \sim n) + (y \& \sim n) = (n | x) + (n | y) - 2 \times n\)。
我们要得到 \((m | x) + (m | y)\) 的值,只需要把每一位上 \(x\) 和 \(y\) 的 \(1\) 的出现数量情况找出来,再根据 \(m\) 的每一位是 \(1\) 还是 \(0\) 来模拟或运算以及位运算即可。
那么我们如何在两次询问的情况下,把每一位的 \(1\) 的出现数量找出来呢?
我们注意到,在二进制位的情况下相加,当前位为第 \(i\) 位,如果第 \(i + 1\) 位和 \(i - 1\) 位都是 \(0\),则两个数的第 \(i\) 位相加只会有这两种情况:
两个 \(1\):第 \(i + 1\) 位为 \(1\),第 \(i\) 位为 \(0\)。
两个 \(0\):第 \(i + 1\) 位和 第 \(i\) 位均为 \(0\)。
一个 \(1\) 一个 \(0\):第 \(i\) 位为 \(1\),第 \(i + 1\) 位为 \(0\)。
那么,我们就可以根据上面那个式子,求一次奇数位全部变成 \(0\) 的两个数的和,把偶数位的 \(1\) 的出现次数情况求出来,求一次偶数位全部变成 \(0\) 的两个数的和,把奇数位的 \(1\) 的出现次数情况求出来。
然后,根据下面的规则逐位求解:
如果 \(m\) 第 \(i\) 位为 \(1\),那么这一位对答案的贡献就是 \(1 \ll (i + 1)\)。
如果 \(m\) 第 \(i\) 位为 \(0\),那么这一位对答案的贡献就看 \(1\) 的出现次数,如果出现次数为 \(2\),那就是 \(1 \ll (i + 1)\),如果出现次数为 \(1\),那就是 \(1 \ll i\)。
AC CODE
[code]#include #define inf 2e18#define int long longconst int N = 2e5 + 9;int ask(int x) { std::cout op; return op;}void solve(){ std::vector a(30); int tmp = 0; for(int i = 0;i < 30;i += 2) { tmp |= (1ll
题解
CF2077B
Finding
OR
Sum
相关帖子
题解:P2157 [SDOI2009] 学校食堂
ICPC2023南京个人题解
比赛题解 总结
随机爬树题解
热身赛总结 题解
qoj 2610 题解
[CEOI 2025] Equal Mex 题解
题解:P11811 [PA 2015] 人赢 / Mistrzostwa
团体设计天梯赛L1题解
题解 SP10366 CODEIT03 - Play with Dates
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
题解:P2157 [SDOI2009] 学校食堂
2
421
剧拧并
2025-11-01
业界
ICPC2023南京个人题解
2
85
缢闸
2025-11-09
业界
比赛题解 总结
4
957
尤晓兰
2025-11-09
业界
随机爬树题解
3
124
习和璧
2025-11-18
业界
热身赛总结 题解
3
700
茅断卉
2025-11-24
安全
qoj 2610 题解
0
156
国语诗
2025-11-27
安全
[CEOI 2025] Equal Mex 题解
2
751
城徉汗
2025-11-28
安全
题解:P11811 [PA 2015] 人赢 / Mistrzostwa
0
425
狞嗅
2025-12-05
业界
团体设计天梯赛L1题解
1
670
当贵
2025-12-06
业界
题解 SP10366 CODEIT03 - Play with Dates
1
137
夔新梅
2025-12-13
回复
(4)
赖琳芳
2025-10-8 13:46:02
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
诈知
2025-10-14 05:22:07
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
yyds。多谢分享
簑威龙
2025-12-11 15:00:37
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
收藏一下 不知道什么时候能用到
辉伫
3 小时前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
搜娲瘠
3 小时前
关注
0
粉丝关注
20
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845357
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9981
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9950
查看更多
今日好文热榜
688
当遇见 CatchAdmin V5-模块化设计重新定义
490
【有手就行】SWIFT:花20分钟把大模型的名
559
论文速读记录 | 2025.12(2)
373
浮点数的本质:为什么计算机无法精确表示0.
726
Flink源码阅读:如何生成JobGraph
928
Python 潮流周刊#132:30 年 Python 自由职
481
大模型榜单周报(2025/12/20)
157
【节点】[LinearToGammaSpaceExact节点]原
789
Aspire 与 Azure Functions 深度集成:架构
1003
阿里Z-Image图像生成模型容器部署
310
痞子衡嵌入式:16MB以上NOR Flash地址模式
668
最新AI换脸软件,全面升级可直播,Mirage下
451
热点 Key 与大 Key 治理——识别、拆分、预
646
Media Extended
330
vlookup的终结者splookup,9个案例讲透查询
872
ROS2之Launch介绍
895
精选 8 个 .NET 开发实用的类库,效率提升
110
精选 8 个 .NET 开发实用的类库,效率提升
600
精选 8 个 .NET 开发实用的类库,效率提升
173
精选 8 个 .NET 开发实用的类库,效率提升