news 2026/4/30 20:34:01

打卡信奥刷题(2784)用C++实现信奥题 P3917 异或序列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2784)用C++实现信奥题 P3917 异或序列

P3917 异或序列

题目描述

给出序列A 1 , A 2 , ⋯ , A N A_1,A_2,\cdots,A_NA1,A2,,AN,求

∑ 1 ≤ i ≤ j ≤ N A i ⊕ A i + 1 ⊕ ⋯ ⊕ A j \sum_{1\le i\le j\le N} A_i\oplus A_{i+1}\oplus\cdots\oplus A_j1ijNAiAi+1Aj

的值。其中,⨁ \bigoplus表示按位异或。

输入格式

第一行,一个整数N NN

第二行,N NN个整数A 1 , A 2 , ⋯ , A N A_1,A_2,\cdots,A_NA1,A2,,AN

输出格式

一个数,为表达式的值。

输入输出样例 #1

输入 #1

2 1 2

输出 #1

6

说明/提示

  • 对于60 % 60\%60%的数据,1 ≤ N ≤ 10 3 1 \le N \le 10^31N103
  • 对于100 % 100\%100%的数据,1 ≤ N ≤ 10 5 1 \le N \le 10^51N1050 ≤ A i ≤ 10 9 0 \le A_i \le 10^90Ai109

C++实现

#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<algorithm>#include<math.h>usingnamespacestd;intn,a,dp[32];longlongans;intmain(){inti,j;scanf("%d",&n);for(i=1;i<=n;++i){scanf("%d",&a);for(j=31;j>-1;--j){if(a&(1<<j))dp[j]=i-dp[j];ans+=1LL*dp[j]*(1<<j);}}printf("%lld",ans);return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 4:43:27

Flutter艺术探索-Flutter自定义Widget:从零开始创建组件

Flutter自定义Widget&#xff1a;告别“搭积木”&#xff0c;从零构建你的专属组件 引言&#xff1a;当内置组件不够用时 搞Flutter开发&#xff0c;Container、Text、Row这些内置组件就像是工具箱里的标准件&#xff0c;应付日常的UI搭建绰绰有余。但做项目不是搭积木&#xf…

作者头像 李华
网站建设 2026/5/1 7:51:43

学霸同款9个降AI率工具,千笔·专业降AI率智能体帮你解决AI检测难题

AI降重工具&#xff1a;学霸的高效选择 在当前学术写作中&#xff0c;AI生成内容的普及让论文的AIGC率和查重率成为不可忽视的问题。无论是继续教育的学生还是研究生&#xff0c;都面临着如何有效降低AI痕迹、保持文章原创性与流畅性的挑战。专业的AI降重工具应运而生&#xff…

作者头像 李华
网站建设 2026/5/1 3:18:20

C语言基础知识 -- BCD码

// 压缩的BCD码 如 十进制123&#xff0c; 对应 0x0123 void LongByteToBCD1(UINT8 longByte, UINT8 *a) {UINT16 bcd;bcd((longByte/100)<<8)(((longByte%100)/10)<<4)(longByte%10);*a (UINT8)(bcd>>8); *(a1) (UINT8)bcd; }UINT16 BCDToLongByte(UIN…

作者头像 李华