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

5373. 中等计算

文章目录

  • Question
  • Ideas
  • Code

Question

给定一个长度为 n
的非负整数序列 a1,a2,…,an

对于 1≤i≤n
,有 bi=ai⊕(imod1)⊕(imod2)⊕…⊕(imodn)

请你计算并输出 b1⊕b2⊕…⊕bn
的值。


表示按位异或。

输入格式
第一行包含整数 n

第二行包含 n
个整数 a1,a2,…,an

输出格式
一个整数,表示 b1⊕b2⊕…⊕bn
的值。

数据范围
前 3
个测试点满足 1≤n≤3

所有测试点满足 1≤n≤106
,0≤ai≤2×109

输入样例:
3
1 2 3
输出样例:
3

Ideas

Code

// 时间复杂度需要控制在O(N)或者O(nlgn)
// 将计算结果的矩阵写出来,尝试找规律,发现竖着有规律
// 规律为,第一列取模结果均为0000,第二列为0101,第三列为0120...以此循环
// 根据异或运算的性质(交换律、X^X=0)可以得出如果循环序列循环k次,k为偶数就等于0
// 所以只需要判断k是否奇数,还需要处理循环序列的最后的部分,最后一个元素为n%i(i为列号)
// 可以预处理一个前缀和数组s[i],表示1^2...^n; s[0] = 0
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 1000010;int n;
int s[N];int main()
{scanf("%d", &n);for (int i = 1; i <= n; i ++ ) s[i] = s[i - 1] ^ i;int res = 0;for (int i = 0; i < n; i ++ ){int a;scanf("%d", &a);res ^= a;}for (int i = 1; i <= n; i ++ ){int k = n / i; if (k & 1) res ^= s[i - 1];res ^= s[n % i];}printf("%d\n", res);return 0;
}
http://www.lryc.cn/news/262010.html

相关文章:

  • 极智一周 | 两系列汇总、MI300X、H100、特供芯片、GPT-4、火灾检测、酷睿Ultra And so on
  • leetcode刷题日志-383赎金信
  • K8s(九)—volume.md
  • python N个人围成一圈报数 报到3出列 直到只剩下最后一人
  • RFC4861 中文版下
  • 用友时空 KSOA 多处SQL注入漏洞复现
  • [AutoSar]基础部分 RTE 介绍
  • Logstash访问安全访问Elasticsearch集群
  • 加密的艺术:对称加密的奇妙之处(下)
  • 异常检测 | MATLAB实现BiLSTM(双向长短期记忆神经网络)数据异常检测
  • 2023“楚怡杯”湖南省赛“信息安全管理与评估“--数字取证调查(高职组)
  • C++ list常用操作
  • MILP加速运算技巧——模型对称性的预处理
  • JavaScript中的生成器与迭代器详解
  • WebLangChain_ChatGLM:结合 WebLangChain 和 ChatGLM3 的中文 RAG 系统
  • hive常用SQL函数及案例
  • 分页操作中使用LIMIT和OFFSET后出现慢查询的原因分析
  • Java八股文面试全套真题【含答案】- Redis篇
  • 【C++11特性篇】一文助小白轻松理解 C++中的【左值&左值引用】【右值&右值引用】
  • 动态规划——OJ题(一)
  • 六:爬虫-数据解析之BeautifulSoup4
  • 音频筑基:总谐波失真THD+N指标
  • 自动驾驶技术:驶向未来的智能之路
  • TIGRE: a MATLAB-GPU toolbox for CBCT image reconstruction
  • 我的NPI项目之Android 安全系列 -- EMVCo
  • vue中实现使用相框点击拍照,canvas进行前端图片合并下载
  • 边缘检测@获取labelme标注的json黑白图掩码mask
  • 嵌入式培训-数据结构-day23-线性表
  • C# DotNetCore AOP简单实现
  • 19.Tomcat搭建