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

蓝桥杯备赛:Day8-小苯的异或和

📚 算法笔记:小苯的异或和 (贡献法与位运算性质)

1. 题目简述

M-小苯的异或疑惑(hard)_北京信息科技大学第十五届程序设计竞赛(同步赛)

  • 场景:给定长度为n nn的数组a aa,计算所有满足1 ≤ i < j ≤ n 1 \le i < j \le n1i<jn( a i ⊕ a j ) (a_i \oplus a_j)(aiaj)的总异或和。
  • 核心挑战n nn高达2 × 10 5 2 \times 10^52×105,两两组合共有n ( n − 1 ) 2 \frac{n(n-1)}{2}2n(n1)对,暴力计算会达到2 × 10 10 2 \times 10^{10}2×1010次运算,必然超时。
  • 目标:在O ( n ) O(n)O(n)O ( n log ⁡ n ) O(n \log n)O(nlogn)时间内求出结果。

2. 核心代码 (C++ 实现)

#include <bits/stdc++.h> using namespace std; typedef long long ll; void solve() { int n; if(!(cin >> n)) return; vector<int> a(n); int total_xor = 0; for(int i = 0; i < n; i++) { cin >> a[i]; total_xor ^= a[i]; // 预先计算所有元素的异或总和 } // 关键逻辑判断: // 每个数 a[i] 会出现在 (n-1) 个组合中。 // 如果 (n-1) 是偶数,a[i] 异或偶数次抵消为 0。 // 如果 (n-1) 是奇数,a[i] 异或奇数次等价于异或 1 次。 if ((n - 1) % 2 == 0) { cout << 0 << endl; } else { cout << total_xor << endl; } } int main() { ios::sync_with_stdio(0); cin.tie(0), cout.tie(0); int _ = 1; while(_--) { solve(); } return 0; }

3. 核心考点与注意事项

  • 贡献法 (Contribution Technique):不计算每对组合的结果,而是统计每个元素在最终算式中出现了多少次。
  • 异或的归零性:异或运算最核心的性质是x ⊕ x = 0 x \oplus x = 0xx=0。只要某个数出现了偶数次,它在异或链中就会彻底消失。
  • 组合数学计数
    • 元素a k a_kak会和它前面的k − 1 k-1k1个数配对,也会和它后面的n − k n-knk个数配对。
    • 总次数= ( k − 1 ) + ( n − k ) = n − 1 = (k-1) + (n-k) = n-1=(k1)+(nk)=n1次。
    • 这是一个常数,意味着所有数字出现的次数是一样多的。

🛠️ 位运算基础备忘录

符号操作关键特性
^异或相同为 0,不同为 1;自反性a ⊕ b ⊕ b = a a \oplus b \oplus b = aabb=a
&按位与全 1 为 1;常用于取位或判断奇偶x & 1
``按位或
<<左移x ≪ n x \ll nxn相当于x ⋅ 2 n x \cdot 2^nx2n
http://www.jsqmd.com/news/605523/

相关文章:

  • 2026年单玻隔断厂家排行:甘肃成品隔断、甘肃活动隔断、甘肃玻璃隔墙、甘肃玻璃隔断、甘肃百叶隔断、甘肃移动隔断选择指南 - 优质品牌商家
  • Qwen3.5-9B垂直场景:制造业BOM表解析+工艺图识别+故障推演
  • 二叉树(C语言)
  • 从零开始构建嵌入式安全:OP-TEE可信执行环境实战指南
  • Creo混合与扫描混合实战:从基础到高级建模技巧
  • 跨平台文件同步:OpenClaw调用Gemma-3-12b-it智能分类备份方案
  • IHaskell实战案例:利用梯度下降算法解决实际优化问题的完整演示
  • AI 设计模式 04:多智能体协作模式 —— 给 AI 组个团队,干活比你公司的人还利索
  • 光电对抗:激光与激光雷达成像探测制导及电子对抗(2)
  • OpenClaw版本升级:无缝迁移Kimi-VL-A3B-Thinking配置到新版本
  • Qwen3-Reranker-0.6B镜像部署:开箱即用的RAG重排序服务容器化方案
  • GDScriptDecomp源码编译指南:从零构建自定义逆向工程工具
  • 从H.264到AV1:主流视频编码标准的演进、选型与实战场景剖析
  • 正则表达式基础
  • Phi-4-mini-reasoning教程:用HuggingFace pipelines封装标准化推理流水线
  • 光电对抗:激光与激光雷达成像探测制导及电子对抗(3)
  • 链表(两数相加)(1)
  • OpenClaw二次开发入门:Phi-3-mini-128k-instruct模型适配改造
  • Python脚本打包成.exe方法
  • RTX4090D显存优化:Qwen3-32B-Chat镜像并发处理OpenClaw任务实测
  • 基于单片机的的公交车报站系统(有完整资料)
  • Ostrakon-VL-8B商业应用:赋能区域督导远程巡店,替代80%人工拍照核查
  • LabVIEW调用HTTPS接口的保姆级教程:从抓取CA证书到GET请求一气呵成
  • Simufact.Forming工艺链仿真实战:从冷成型到热处理的完整流程配置技巧
  • Phi-4-mini-reasoning轻量推理:模型剪枝后4.2GB版本在A10G上的部署实测
  • Mac环境OpenClaw排错大全:Qwen3.5-9B接口调用常见问题
  • 关键词扩词软件怎么做竞争分析_关键词扩词软件对网站SEO有什么帮助
  • 手把手教你用Xilinx Artix7 FPGA实现千兆以太网通信(GMII接口实战)
  • 2026年防水防潮隔墙板厂家排行:环保轻质隔墙板/聚苯颗粒板/轻质保温隔墙板/防火隔墙板/预制板/预制构件/预制隔墙板/选择指南 - 优质品牌商家
  • Fish Speech 1.5语音自然度提升指南:标点映射规则、停顿时长微调、重音标注