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

cf2225D

定两个整数 n 和 x。考虑序列 [1,2,3,…,n],你需要找出该序列中满足以下两个条件的子段数量: 子段包含数字 x; 子段内所有数字的按位异或(XOR)结果等于 0。 换句话说,你需要统计满足如下条件的数对 (l,r) 的数量: 1≤l≤x≤r≤n; l⊕(l+1)⊕⋯⊕r=0(其中 ⊕ 表示按位异或运算)。

这个题第一次想的是预处理一个前缀异或和,用o(1)的复杂度求区间异或和(f[r]f[l-1])但是数据量太大了,n最大为1e18,这么算复杂度为n2,肯定会超时,然后你会发现4k4k+14k+24k+3=0,也很好证明,4k相当于往左移动2,也就是向右补两个零,4k+1,4k+2,会在补的两个零上各占一个1,那么前三个数异或完就刚好等于4k+3,然后观察会发现随便一个数x,当x%4==0,前x-1个数异或和为零,所以f(x)=x,剩下的可以模拟一下,当x%4=1,f(x)=1,当x%4=2时,f(x)=x+1,当x%4=3时,f(x)=0;然后再观察会发现,当余数为0和2的时候,在1到x-1和x到n之间是不会有相等的情况的,也可以去模拟一遍,我们要找的就是1到x-1和x到n之间相等,这样的话区间异或就等于零了,所以要先统计x前后区间相同的前缀异或和,然后相乘,但是要注意的是,看着代码说一下

include<bits/stdc++.h>

using namespace std;

define mod 998244353

define int long long

signed main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int t;cin>>t;
while(t--)
{
int n,x;cin>>n>>x;
int fn=(n+1)/4,gn=(n+3)/4;//由于数据量太大,不能预处理前缀异或,找规律发现在1到n之间有fn个余数为3,有fx个余数为1的,下面fx,gx也一样
int fx=(x)/4,gx=(x+2)/4;
fn++,fx++;//这里有一个坑就是因为左侧l是可以等于1的,那么l-1是可以取零的前0个异或和为0,0%4=0,f(0)=0,很坑,所以要多算一个,fn++,fx++;
int ans=(fx%mod)((fn-fx)%mod)+(gx%mod)((gn-gx)%mod);
cout<<ans%mod<<'\n';
}
return 0;
}

http://www.jsqmd.com/news/686365/

相关文章:

  • GBase数据库常用名词解释(之一)
  • Debian11最小安装避坑指南:从镜像下载到SSH配置全流程
  • PotPlayer字幕翻译终极指南:百度翻译插件完整使用教程
  • 2026年鸭屎香茶叶定制厂家哪家好,五山茶叶不容错过 - 工业品网
  • 如何快速解决C盘爆红问题:Windows Cleaner完整使用指南
  • 探讨南京、芜湖等地好用的LED显示屏安装品牌推荐 - mypinpai
  • zteOnu工具实战:5分钟解锁中兴光猫工厂模式获取完整控制权
  • Qwen3-4B-Instruct完整指南:支持PDF/EPUB/Markdown长文档问答系统搭建
  • 老芯片新玩法:ICL8038信号发生器的现代化改造与扩展应用思路
  • 聊聊知名的监控安装企业,南京地区靠谱的有哪些 - 工业品网
  • 微信聊天记录永久保存指南:开源工具WeChatExporter完整备份方案
  • 如何高效重置JetBrains IDE试用期:5个简单步骤告别30天限制
  • 深入分析广东鸭屎香茶叶厂家,五山茶叶口碑出众哪家强 - 工业品牌热点
  • Tomato-Novel-Downloader:一站式番茄小说下载与格式转换解决方案
  • nli-MiniLM2-L6-H768效果展示:英文新闻事件报道与时间线陈述中立性验证
  • Phi-3.5-Mini-Instruct地理信息:空间分析问答+GIS操作提示+制图规范生成
  • 从Kaggle到GitHub:手把手教你用Colab打造云端AI开发流水线
  • IDE Eval Resetter:JetBrains IDE试用期智能管理开源方案的技术实现
  • Windows右键菜单管理终极指南:如何快速清理和自定义你的右键菜单
  • 深度分析鲜目录寿司加盟行业,浙江地区加盟哪个品牌靠谱? - 工业推荐榜
  • 通用GUI编程技术——图形渲染实战(三十七)——D3D11初始化与SwapChain:从零搭建GPU渲染框架
  • 避障小车DIY实战:用STM32F103C8T6和HC-SR04实现自动避障(附完整代码)
  • GBase 8c多模态分布式数据库核心架构详解
  • 别再纠结7474还是7687端口了!一文搞懂Neo4j的HTTP与Bolt协议,以及py2neo的正确连接姿势
  • Quectel CC660D-LS物联网卫星通信模块技术解析与应用
  • Visdom蓝屏别慌!手把手教你用0.1.8.8版本+环境切换搞定PyTorch训练可视化
  • 华硕笔记本终极控制指南:用G-Helper完全取代臃肿的Armoury Crate
  • 分析2026年滁州机房建设资深企业,哪家值得推荐? - myqiye
  • 给嵌入式开发者的Armv8-R内存属性速查手册:Device_nGnRnE到底管得多宽?
  • Elsevier Tracker:彻底告别手动刷新,科研投稿进度自动追踪指南