蓝桥杯 第3217题 简单的异或难题 C++ Java Python

题目

思路和解题方法

        计算给定数组中子数组异或和的问题。它采用了前缀异或的方法来预处理数组,然后对于每个查询,通过异或操作计算子数组的异或和。

  1. 读取输入的数组,并计算每个位置的前缀异或和。
  2. 对于每个查询,读取查询的左右边界,计算对应子数组的异或和并输出。

复杂度

        时间复杂度:O(n+m)

预处理数组的时间复杂度为 O(n),每个查询的时间复杂度为 O(1),因此总体时间复杂度为 O(n + m),其中 n 是数组长度,m 是查询次数。

        空间复杂度:O(n)

               

程序的空间复杂度取决于数组大小和其他常量,因此为 O(n)。

c++ 代码

#include <iostream>
using namespace std;const int N = 1e5+10;int main() {// 关闭输入输出流的同步,提高速度ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);int n, m;cin >> n >> m;int a[N], prefix[N];// 读取数组并计算前缀异或和for (int i = 1; i <= n; i++) {cin >> a[i];prefix[i] = prefix[i - 1] ^ a[i];}while (m--) {int l, r;cin >> l >> r;// 计算子数组的异或和int ans = prefix[r] ^ prefix[l - 1];cout << ans << '\n';}return 0;
}

Java 版本(仅供参考)

import java.util.*;public class Main {static final int N = 100009;public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();int[] a = new int[N];int[] prefix = new int[N];for (int i = 1; i <= n; i++) {a[i] = scanner.nextInt();prefix[i] = prefix[i - 1] ^ a[i];}while (m-- > 0) {int l = scanner.nextInt();int r = scanner.nextInt();int ans = prefix[r] ^ prefix[l - 1];System.out.println(ans);}}
}

Python 版本(仅供参考)

n, m = map(int, input().split())
a = list(map(int, input().split()))
prefix = [0] * (n + 1)for i in range(1, n + 1):prefix[i] = prefix[i - 1] ^ a[i - 1]for _ in range(m):l, r = map(int, input().split())ans = prefix[r] ^ prefix[l - 1]print(ans)

代码细节:

同异或==0  所以不用管奇数还是偶数

觉得有用的话可以点点赞,支持一下。

如果愿意的话关注一下。会对你有更多的帮助。

每天都会不定时更新哦  >人<  。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/760426.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css使用变量

vue3单文件SFC新特性在css里可以使用变量&#xff0c;具体使用如下&#xff1a; <template><div class"home-view"><span>测试</span><p>测试2</p></div> </template><script setup lang"ts"> imp…

C++关键字:const

文章目录 一、const的四大作用1.修饰 变量、数组2.修饰 函数的形参、修饰 引用 (最常用&#xff09;3.修饰 指针&#xff1a;常量指针、指针常量 、只读指针4.修饰 类的成员函数、修饰 类的对象 一、const的四大作用 1.修饰 变量、数组 1.const修饰变量&#xff1a; 被const修…

基于Spring Boot的煤矿信息管理系统

摘 要 系统根据现有的管理模块进行开发和扩展&#xff0c;采用面向对象的开发的思想和结构化的开发方法对煤矿信息管理的现状进行系统调查。采用结构化的分析设计&#xff0c;该方法要求结合一定的图表&#xff0c;在模块化的基础上进行系统的开发工作。在设计中采用“自下而上…

一分钟了解自动化测试【建议收藏】

引子 写在最前面&#xff1a;目前自动化测试并不属于新鲜的事物&#xff0c;或者说自动化测试的各种方法论已经层出不穷&#xff0c;但是&#xff0c;能够明白自动化测试并很好落地实施的团队还不是非常多&#xff0c;我们接来下用通俗的方式来介绍自动化测试…… 本文共有2410…

Web Service接口测试

Web service 接口测试 一. web Service概念 Web service使用与平台和编程语言无关的方式进行通讯的一项技术, web service 是一个接口, 他描述了一组可以在网络上通过标准的XML消息传递访问的操作,它基于xml语言协议来描述要执行的操作或者要与另外一个web 服务交换数据, 一组…

C语言每日一题06

一、题目 二、解析 void main &#xff08;&#xff09; { char c1&#xff0c;c2&#xff1b; int a1&#xff0c;a2&#xff1b; c1 getchar &#xff08;&#xff09;&#xff1b;//读取第一个输入&#xff0c;c11 scanf &#xff08;“%3d”&#xff0c;&a1&#xff…

2024上海慕尼黑正运动展位现场直击

3月20日&#xff0c;备受业界关注的、3C电子行业规模最大的会展活动“2024慕尼黑上海电子生产设备展”在上海新国际博览中心盛大开幕。 正运动技术本次以“打卡正运动&#xff0c;共同探讨国产全自主运动控制新发展”为主题&#xff0c;现场精心策划了一系列激动人心的有奖互动…

数据库:基本操作与用户授权

一 基本操作 1 SQL分类 数据库&#xff1a;database 表&#xff1a;table&#xff0c;行&#xff1a;row 列&#xff1a;column 索引&#xff1a;index 视图&#xff1a;view 存储过程&#xff1a;procedure 存储函数&#xff1a;function 触发器&#xff1a;trigger 事…

【开发环境搭建篇】MySQL服务器端安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0c;产…

高效低压电源——FP7195升降压芯片打造专属电源方案

目录 方案背景 产品介绍 升降压LED驱动电源参数介绍 FP7195芯片介绍 产品应用领域 电源板详解 总结 方案背景 目前市面上的低压LED驱动电源五花八门&#xff0c;升压&#xff0c;降压都包含在内&#xff0c;不过在实际使用时总会有一定限制要求&#xff0c;比如要求电源…

19---时钟电路设计

视频链接 时钟硬件电路设计01_哔哩哔哩_bilibili 时钟电路设计 晶振是数字电路的心脏&#xff0c;数字电路需要一个稳定的工作时钟信号&#xff0c;时钟电路至关重要&#xff01; 1、晶振概述 晶振一般指晶体振荡器。晶体振荡器是指从一块石英晶体上按一定方位角切下薄片&…

(学习日记)2024.03.15:UCOSIII第十七节:任务的挂起和恢复

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

virtualBox镜像复制

镜像复制 有一个镜像后&#xff0c;图方便&#xff0c;想直接使用这个vdi文件&#xff0c;但vdi有个uuid值&#xff0c;同一个虚拟机中不能同时存在两个同样的uuid的介质的&#xff0c;普通的复制文件所得到的uuid是一样的 &#xff0c;所以需要用到自带的方法复制vdi文件&…

记录无线通信网站

https://www.rfwireless-world.com/ 包含许多无线知识的一个网站 包含了以上无线通讯协议 2.https://csa-iot.org/https://csa-iot.org/2.https://csa-iot.org/ connectivity standards alliance CSA-IOT 官网 推出的协议有&#xff1a; 如果想查找已认证CSA某种协议的产品…

如何在Ubuntu系统搭建Excalidraw容器并实现公网访问本地绘制流程图

文章目录 1. 安装Docker2. 使用Docker拉取Excalidraw镜像3. 创建并启动Excalidraw容器4. 本地连接测试5. 公网远程访问本地Excalidraw5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定公网地址远程访问 本文主要介绍如何在Ubuntu系统使用Docker部署开源白板工具Excal…

JavaSE、JavaEE和Jakarta EE的历史、区别与联系

JavaSE、JavaEE和Jakarta EE是Java平台中的三个重要组成部分&#xff0c;它们各自承担着不同的角色&#xff0c;同时也有着密切的联系。在理解它们之间的历史、区别和联系之前&#xff0c;我们首先需要了解它们的基本概念。 JavaSE&#xff08;Java Standard Edition&#xff…

Linux——进程信号(二)

目录 1、阻塞信号 1.1、信号其他相关常见概念 1.2、在内核中的表示 1.3、sigset_t 1.4、信号集操作函数 2、捕捉信号 2.1、内核如何捕捉信号 5.2、sigaction 1、阻塞信号 1.1、信号其他相关常见概念 实际执行信号的处理动作被称为信号递达&#xff08;Delivery&#x…

sentinel黑白名单权限控制

黑白名单权限控制 规则配置 规则创建 创建一个 AuthorityRule 规则对象三个关键要素 setStrategy: 黑白名单类型setResource: 规则和资源的绑定关系setLimitApp: 限制的来源 调用 AuthorityRuleManager.loadRules()加载规则 监听器实例化和管理 AuthorityPropertyListener…

【Leetcode】top 100 链表

基础知识补充 单向链表结构&#xff1a;item存储数据 next指向下一结点地址 head保存首地址 class Node(object): # 创建结点def __init__(self, item): self.item item # item存放数据元素self.next None # next是下一个…

【教程】混淆代码保护与优化

在本文中&#xff0c;我们将介绍如何在iOS项目中利用混淆技术来保护源代码安全并实现优化。我们将分别针对Swift和OC项目&#xff0c;详细介绍如何使用脚本和工具进行代码混淆&#xff0c;并解决在混淆过程中可能遇到的问题。随着移动应用市场的不断扩大&#xff0c;iOS应用的安…