当前位置: 首页 > news >正文

嘤嘤不想求异或喵【牛客tracker 每日一题】

嘤嘤不想求异或喵

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

嘤嘤有两个整数l , r l,rl,r,她想知道区间[ l , r ] [l,r][l,r]所有整数的异或和是多少喵~。

输入描述:

第一行输入一个正整数T ( 1 ≤ T ≤ 2 × 10 5 ) T(1≤T≤2×10^5)T(1T2×105),表示询问次数。

接下来T TT行,每行输入两个正整数l , r ( 1 ≤ l ≤ r ≤ 10 18 ) l,r(1≤l≤r≤10^{18})l,r(1lr1018)表示询问。

输出描述:

对于每个询问,在一行中输出一个整数表示答案。

示例1

输入:

3 1 1 1 2 1 3

输出:

1 3 0

解题思路

本题核心是前缀异或性质 + 周期性规律,高效解决超大范围、高频率查询的区间异或问题。根据异或运算特性,区间[ l , r ] [l,r][l,r]的异或和 =1 ∼ r 1\sim r1r的异或和⊕ \oplus1 ∼ l − 1 1\sim l-11l1的异或和。而1 ∼ x 1\sim x1x的异或和存在固定4周期规律x m o d 4 = 0 x\mod4=0xmod4=0时结果为x xx= 1 =1=1时为1 11= 2 =2=2时为x + 1 x+1x+1= 3 =3=3时为0 00。该规律可O ( 1 ) O(1)O(1)计算结果,无需遍历。搭配快速IO优化,算法时间复杂度O ( T ) O(T)O(T),完美适配T ≤ 2 × 10 5 T≤2×10^5T2×105、数值达10 18 10^{18}1018的严苛约束。

总结

核心逻辑:区间异或和转化为两个前缀异或的异或,用4周期规律实现O(1)计算。
关键操作:封装O(1)前缀异或函数、运用区间异或公式、快速处理多组查询。
效率保障:常数级运算+线性处理查询,轻松应对百万级查询与超大数值范围。

代码内容

#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll INF=1e18;constll M=1e6+10;constll mod=1e9+7;llgetxor(ll x){if(x<0)return0;ll mod=x%4;if(mod==0)returnx;if(mod==1)return1;if(mod==2)returnx+1;return0;}voidsolve(){ll l,r;cin>>l>>r;cout<<(getxor(r)^getxor(l-1))<<'\n';}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);ll t;cin>>t;while(t--)solve();return0;}
http://www.jsqmd.com/news/913682/

相关文章:

  • 大学生宿舍打造百万美元产品 nice!nano,历经波折终获成功
  • 2026年平层家具top5排行:意式轻奢家具/极简家具/现代家具/简奢家具/老钱家具/豪宅家具/靠谱品牌实力解析 - 优质品牌商家
  • JavaScript技术周刊 2026年第18周
  • AI前沿研究深度解析:从大模型原理到安全对齐与工程实践
  • 如何构建专业级音频标注界面:Audio Annotator深度解析与实战指南
  • 告别启动卡顿!在Unity中为Luban配置表实现按需加载(附完整模板修改教程)
  • SAP MDG工作流配置避坑指南:手把手教你搞定物料主数据的审批代理分配
  • C++复习
  • 立创商城+EDA专业版高效协同实战:找不到元器件封装时,我是这样快速解决的
  • 从MagSafe到智能家居:手把手拆解‘小体积大吸力’磁吸组件的选型与实战避坑
  • 基于摄像头的Python坐姿监测工具:带预训练模型、标注数据集与实时语音纠偏
  • Lua 函数详解
  • PHP技术周刊 2026年第18周
  • 别再踩坑了!用Arduino IDE 2 + ST-Link给STM32烧录程序的保姆级避坑指南
  • 从模型导入到手柄交互:我的第一个Unity VR项目踩坑实录(附完整工程文件)
  • IBM 与红帽投 50 亿美元启动 Project Lightwell,用 AI 保障企业开源软件安全
  • ncmdumpGUI:3步解锁网易云音乐NCM格式的Windows图形化解密工具
  • 别再只会用Linear了!Unity动画手感提升秘籍:用DG.Tweening的Ease类型模拟真实物理
  • 电力系统隐蔽通信漏洞与SCAMPER框架解析
  • 鸿蒙新闻阅读App工程源码:HarmonyOS 4兼容,含列表/详情页与网络请求封装
  • C#写的充电桩TCP调试小工具,带完整界面和通信封装
  • 告别枯燥文档:用Pico手柄在Unity里实现抓取、投掷与UI交互(附射线优化技巧)
  • AI赋能销售演示:从单向宣讲到智能互动的全流程实战指南
  • 别再手动解密了!.NET 6 集成微信支付V3回调,用Senparc SDK和OSS.PayCenter两种方式搞定Native支付通知
  • 西门子博途TIA Portal入门:手把手教你用常开常闭触点控制一个灯(附仿真避坑指南)
  • 阿里推出Blade AI智能体,让故障演练低成本成日常
  • 别再只用picker了!用微信小程序自定义滑动刻度尺,提升用户表单填写体验
  • 告别DLL!Unity跨平台开发中C#与C++交互的另一种思路:源码集成全攻略
  • Unity UI优化实战:用Scroll Rect和Content Size Fitter搞定动态任务列表(附完整Prefab)
  • 量化新手必看:如何像专业研究员一样检验一个因子?从IC/IR到分组回测全流程详解