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

[蓝桥杯 2025 省 Python B] 异或和

暴力(O(n^2)):

def xor_sum(n, arr):total = 0for i in range(n):for j in range(i + 1, n):total += (arr[i] ^ arr[j]) * (j - i)return total# 主函数
if __name__ == "__main__":n = int(input())arr = list(map(int, input().split()))print(xor_sum(n, arr))

只能通过部分示例

单独处理 k,前缀和优化“(j - i)”:

        

大规模数据(按位分治 + 前缀和优化), 根据全部测试用例的提示:
对于所有评测用例,1 ≤ n ≤ 10**5 ,1 ≤ ai ≤ 2**20    
必须将复杂度优化到 O(n log A)  ≈  O(n * 20)      -- A ≈ 2²⁰def xor_weighted_sum(n, a):MAX_BITS = 20ans = 0for k in range(MAX_BITS):  # 遍历每一位(最多 20 位)cnt_0 = 0cnt_1 = 0pos_sum_0 = 0pos_sum_1 = 0for i in range(n):bit = (a[i] >> k) & 1if bit == 0:# 当前是0,贡献 = 前面所有为1的位置之和 - (数量 * 当前索引)contrib = cnt_1 * i - pos_sum_1else:# 当前是1,贡献 = 前面所有为0的位置之和 - (数量 * 当前索引)contrib = cnt_0 * i - pos_sum_0ans += contrib << k  # 每一位贡献乘上 2^k# 更新状态if bit == 0:cnt_0 += 1pos_sum_0 += ielse:cnt_1 += 1pos_sum_1 += ireturn ans# 主程序
if __name__ == "__main__":n = int(input())a = list(map(int, input().split()))print(xor_weighted_sum(n, a))

相关文章:

  • IDEA中Quarkus框架(3.13版本)容器编排、压测与调优、注意事项等
  • Python基础语法3
  • 模板方法模式:定义算法骨架的设计模式
  • “在中国,为中国” 英飞凌汽车业务正式发布中国本土化战略
  • 数据的加载与保存
  • 国产三维CAD皇冠CAD在机械及汽车零部件设计建模教程:斜滑动轴承
  • 亚远景-基于ASPICE标准的汽车软件过程优化路径
  • 汽车免拆诊断案例 | 2016款奔驰C200L车组合仪表上多个故障灯偶尔点亮
  • 【AI大模型】MCP:AI应用的“超级扩展坞”
  • 新市场环境下新能源汽车电流传感技术发展前瞻
  • 算法习题-经典环形涂色问题
  • 边缘计算在工业自动化中的应用:开启智能制造新时代
  • RK3568平台开发系列讲解(调试篇)debugfs API接口及案例
  • 开源作业调度框架Quartz框架详细使用说明
  • 于烟火处拾诗意,在文字间见山河 ——《远方并不远》散文推荐
  • 【MQ篇】RabbitMQ之发布订阅模式!
  • 中兴云电脑W102D_晶晨S905X2_2+16G_mt7661无线_安卓9.0_线刷固件包
  • easypoi 实现word模板导出
  • leetcode-哈希表
  • 本地(NAS/服务器)与云端(Docker/Kubernetes)部署详解与对比
  • 一季度沪苏浙皖GDP增速均快于去年全年,新兴动能持续壮大
  • 金湘军辞去山西省省长职务
  • 重庆一幼儿园回应招聘硕士幼教:统一标准,江北区学前教育岗的硬性要求
  • 蚌埠一动物园用染色犬扮熊猫引争议,园方回应:被投诉已撤走
  • 北朝时期的甲胄
  • 习近平同阿塞拜疆总统阿利耶夫会谈