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

灵茶八题 - 子数组 ^w^

灵茶八题 - 子数组 w

题目描述

给你一个长为 n n n 的数组 a a a,输出它的所有连续子数组的异或和的异或和。

例如 a = [ 1 , 3 ] a=[1,3] a=[1,3] 有三个连续子数组 [ 1 ] , [ 3 ] , [ 1 , 3 ] [1],[3],[1,3] [1],[3],[1,3],异或和分别为 1 , 3 , 2 1,3,2 1,3,2,所以答案为 1 ⊕ 3 ⊕ 2 = 0 1 \oplus 3\oplus 2=0 132=0。其中 ⊕ \oplus 表示异或运算。

输入格式

第一行输入一个整数 n ( 1 ≤ n ≤ 2 ⋅ 1 0 5 ) n\ (1\le n \le 2\cdot 10^5) n (1n2105)

第二行输入 n n n 个非负整数,表示数组 a a a 中的元素 ( 0 ≤ a [ i ] ≤ 1 0 9 ) (0\le a[i] \le 10^9) (0a[i]109)

输出格式

一个整数,表示 a a a 的所有连续子数组的异或和的异或和。

样例 #1

样例输入 #1

2
1 3

样例输出 #1

0

样例 #2

样例输入 #2

1
1

样例输出 #2

1

提示

由于只有^因此我们可以算每一个数的贡献,每一个数出现的次数为i * (n - i + 1),相当于把每个数出现了多少次都异或一下,出现次数为偶数则为0,奇数则为本身

#include<bits/stdc++.h>using namespace std;typedef long long ll;
typedef pair<int, int>PII;
const int N=2e5+10;
const int MOD = 998244353;
const int INF=0X3F3F3F3F;
const int dx[]={-1,1,0,0,-1,-1,+1,+1};
const int dy[]={0,0,-1,1,-1,+1,-1,+1};
const int M = 1e7 + 10;int t;int a[N];
int main()
{int n;cin >> n;for(int i = 1; i <= n; i ++){cin >> a[i];}//由于只有^因此我们可以算每一个数的贡献,每一个数出现的次数为i * (n - i + 1);//相当于把每个数出现了多少次都异或一下,出现次数为偶数则为0,奇数则为本身ll res = 0;for(ll i = 1; i <= n; i ++){res ^= ((i * (n - i + 1)) & 1) * a[i];}cout << res << endl;return 0;
}
http://www.lryc.cn/news/414321.html

相关文章:

  • git clone private repo
  • vue3+ts+pinia+vant-项目搭建
  • 自动化测试概念篇
  • Mojo值的生命周期(Life of a value)详解
  • java对接kimi详细说明,附完整项目
  • 鸿蒙媒体开发【基于AVCodec能力的视频编解码】音频和视频
  • django集成pytest进行自动化单元测试实战
  • 48天笔试训练错题——day40
  • LabVIEW在DCS中的优势
  • 英特尔:从硅谷创业到全球科技巨头
  • 生物计算与纳米技术:交汇前沿的科学领域
  • C#中栈和队列
  • 技战法丨攻防演练防御——纵深、联动、诱捕(可搬运、可cv)
  • 1、 window平台opencv下载编译, 基于cmake和QT工具链
  • C++20三向比较运算符详解
  • 监听机制与耗电量
  • C++ //练习 16.29 修改你的Blob类,用你自己的shared_ptr代替标准库中的版本。
  • 【Mode Management】CanNm处于PBS状态下接收到一帧诊断报文DCM会响应吗
  • 【C++】模版:范式编程、函数模板、类模板
  • 验证图片旋转
  • 宏景eHR /ajax/ajaxService SQL注入漏洞复现
  • 从源码看 Redis:深入理解 redisDb 和 redisObject
  • unity中实现流光效果——世界空间下
  • 项目经验分享:用4G路由器CPE接海康NVR采用国标GB28181协议TCP被动取流一段时间后设备就掉线了
  • 【RabbitMQ】RabbitMQ不公平分发_预取值
  • 最新AI模型使用指南和模型
  • 数据结构之八大基本排序方法
  • 《Milvus Cloud向量数据库指南》——什么是高可用:深入理解数据库系统中的高可用性架构
  • C++ | Leetcode C++题解之第319题灯泡开关
  • C# 使用 NLog 输出日志到文件夹