蓝桥杯——神奇的数组

ops/2024/12/28 23:29:10/

题目描述

欢迎来到异或王国,这是一个特殊的王国,对于一个数组它的价值并非所有数相加,而是所有数异或得到的值。

当然对于某些神奇的数组来说值可能是一样的,给定一个长度为 n 的数组 a ,请问有多少个子数组是神奇数组。

换句话说,在数组 a 中存在多少对下标 l 和 r(1≤l≤r≤n) 满足:al⊕al+1⊕...⊕ar=al+al+1+...+ar

输入格式

第一行输入一个整数 n ,表示数组 a 的长度。

第二行输入 n 个整数,表示数组 a 的值。

数据保证 1≤n≤2×105​​,0≤ai<220​​。

输出格式

输出一个整数表示答案。

样例输入

5
1 2 3 4 5

样例输出

7

说明

对于样例,满足条件的下标有 (1,1),(1,2),(2,2),(3,3),(3,4),(4,4),(5,5),总共 7 对。

代码如下:

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int maxn = 2e5 + 9;
ll a[maxn];int main()
{int n; cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];int l = 1, r = 1, res = 0;ll ans = 0;while (l <= n) {while (r <= n && ((res ^ a[r]) == (res + a[r]))) res ^= a[r], r++;ans += r - l;res ^= a[l];l++;}cout << ans << '\n';return 0;
}


http://www.ppmy.cn/ops/145764.html

相关文章

CCF-GESP 等级考试 2023年9月认证C++五级真题解析

2023年9月真题 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 正确答案&#xff1a;A 解析&#xff1a;考察知识点&#xff1a;计算机基础 本题属于考察计算机基础知识知识。手写板是输入信息的设备&#xff0c;选A。 正确答案&#xff1a;D 解析&#xff1a;…

Unity中如何修改Sprite的渲染网格

首先打开SpriteEditor 选择Custom OutLine,点击Genrate 则在图片边缘会出现边缘线&#xff0c;调整白色小方块可以调整边缘 调整后&#xff0c;Sprite就会按照调整后的网格渲染了。 如何在UI中使用&#xff1f; 只要在UI的Image组件中选择Use Sprite Mesh 即可 结果&#xff1…

Java全栈项目-校园公告管理系统开发实践

项目简介 校园公告管理系统是一个基于Spring Boot Vue.js的全栈Web应用&#xff0c;旨在为学校提供一个现代化的公告发布和管理平台。系统支持公告的发布、编辑、查询和分类管理&#xff0c;并提供用户权限控制等功能。 技术栈 后端技术 Spring Boot 2.7.0Spring Security…

预约参观华为基地,见证行业巅峰

✨ 大家好呀&#xff01;今天要跟大家分享一个超酷的体验&#xff0c;关于华为的参观学习之旅&#xff01;&#x1f680; 华为成立于1987年&#xff0c;位于深圳&#xff0c;是全球领先的信息与通信技术&#xff08;ICT&#xff09;解决方案供应商哦&#xff01;他们专注于科技…

Scala迭代更新

在Scala中&#xff0c;迭代器&#xff08;Iterator&#xff09;是一种用于遍历集合&#xff08;如数组、列表、集合等&#xff09;的元素而不暴露其底层表示的对象。迭代器提供了一种统一的方法来访问集合中的元素&#xff0c;而无需关心集合的具体实现。 在Scala中&#xff0c…

华为OD E卷(100分)38-数组拼接

前言 工作了十几年&#xff0c;从普通的研发工程师一路成长为研发经理、研发总监。临近40岁&#xff0c;本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作&#xff0c;愁肠百结。为了让自己有点事情做&#xff0c;也算提高一下自己的编程能力…

【国产NI替代】基于全国产FPGA的16振动+2转速+8路IO口输入输出(24bits)256k采样率,高精度终端采集板卡

16振动2转速8路IO口输入输出&#xff08;24bits&#xff09; 高精度终端采集板卡 采用AG16KF256国产FPGA的硬件架构&#xff0c;外扩 16MB的SDRAM做为千兆网的发送缓存&#xff0c;比起同 款带ARM的硬件架构&#xff0c;纯FPGA的架构虽然边缘 计算能力不如ARM&#xff0c;但…

OpenCV 入门

OpenCV_Python 入门 创建/显示窗口 方法说明参数返回namedWindow创建一个窗口窗口名称,WINDOW_NORMAL(窗口属性)resizeWindow设置窗口大小窗口名称,宽,高imshow显示窗口窗口名称,要显示的图像destroyAllWindows关闭所有窗口waitKey延时监听键盘按下0无限 / 单位毫秒键盘按下键…