登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
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
410
剧拧并
2025-11-01
业界
ICPC2023南京个人题解
1
72
缢闸
2025-11-09
业界
比赛题解 总结
1
954
尤晓兰
2025-11-09
业界
随机爬树题解
3
117
习和璧
2025-11-18
业界
热身赛总结 题解
1
685
茅断卉
2025-11-24
安全
qoj 2610 题解
0
150
国语诗
2025-11-27
安全
[CEOI 2025] Equal Mex 题解
1
743
城徉汗
2025-11-28
安全
题解:P11811 [PA 2015] 人赢 / Mistrzostwa
0
403
狞嗅
2025-12-05
业界
团体设计天梯赛L1题解
0
650
当贵
2025-12-06
业界
题解 SP10366 CODEIT03 - Play with Dates
0
123
夔新梅
2025-12-13
回复
(3)
赖琳芳
2025-10-8 13:46:02
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
用心讨论,共获提升!
诈知
2025-10-14 05:22:07
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
yyds。多谢分享
簑威龙
3 天前
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
收藏一下 不知道什么时候能用到
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
业界
签约作者
程序园优秀签约作者
发帖
搜娲瘠
3 天前
关注
0
粉丝关注
20
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845356
3934307807
991123
4
xiangqian
638210
5
韶又彤
9999
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
470
[数据结构/Java] 数据结构之循环队列
456
理解整数在计算机中的表示
200
北京上门收画服务权威推荐榜单
216
关于renpy游戏小范围QQ群内部测试的一个思
21
Java关键字解析之abstract:抽象的本质、规
446
10GB vs 600MB:我们弃用 GitLab,选择了这
163
Python 潮流周刊#131:从零开始构建智能体
872
flask基础知识深入——会话管理:Flask Ses
106
推荐几款免费免登录无损高质量图片压缩工具
640
玩转 | q群智能聊天机器人 —— MaiBot(麦
993
offline meta-RL | 近期工作速读记录
663
C#AI系列(5): C#离线实现高效OCR
196
这才是vibe coding正确的打开方式 - 手把手
547
huggingface_hub 1.0 正式版现已发布:开源
5
读捍卫隐私05数字照片
833
嵌入式系统内存魔法之分散加载
747
嵌入式系统内存魔法之分散加载
131
【Java】ThreadLocal源码解析
34
观察者模式,发布/订阅模式,与回调函数
700
用 GPT-5.2 Vibe Coding,做了一个可以“玩