当前位置: 首页> 房产> 政策 > 电子商务有限公司简介_制作ppt的软件教程_阿里指数查询_seo优化快速排名

电子商务有限公司简介_制作ppt的软件教程_阿里指数查询_seo优化快速排名

时间:2025/7/15 10:21:56来源:https://blog.csdn.net/2302_77889694/article/details/147448827 浏览次数:0次
电子商务有限公司简介_制作ppt的软件教程_阿里指数查询_seo优化快速排名

暴力(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))

关键字:电子商务有限公司简介_制作ppt的软件教程_阿里指数查询_seo优化快速排名

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: