当前位置:   article > 正文

蓝桥杯 第3217题 简单的异或难题 C++ Java Python_蓝桥杯选数异或

蓝桥杯选数异或

题目

思路和解题方法

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

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

复杂度

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

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

        空间复杂度:O(n)

               

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

c++ 代码

  1. #include <iostream>
  2. using namespace std;
  3. const int N = 1e5+10;
  4. int main() {
  5. // 关闭输入输出流的同步,提高速度
  6. ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  7. int n, m;
  8. cin >> n >> m;
  9. int a[N], prefix[N];
  10. // 读取数组并计算前缀异或和
  11. for (int i = 1; i <= n; i++) {
  12. cin >> a[i];
  13. prefix[i] = prefix[i - 1] ^ a[i];
  14. }
  15. while (m--) {
  16. int l, r;
  17. cin >> l >> r;
  18. // 计算子数组的异或和
  19. int ans = prefix[r] ^ prefix[l - 1];
  20. cout << ans << '\n';
  21. }
  22. return 0;
  23. }

Java 版本(仅供参考)

  1. import java.util.*;
  2. public class Main {
  3. static final int N = 100009;
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. int n = scanner.nextInt();
  7. int m = scanner.nextInt();
  8. int[] a = new int[N];
  9. int[] prefix = new int[N];
  10. for (int i = 1; i <= n; i++) {
  11. a[i] = scanner.nextInt();
  12. prefix[i] = prefix[i - 1] ^ a[i];
  13. }
  14. while (m-- > 0) {
  15. int l = scanner.nextInt();
  16. int r = scanner.nextInt();
  17. int ans = prefix[r] ^ prefix[l - 1];
  18. System.out.println(ans);
  19. }
  20. }
  21. }

Python 版本(仅供参考)

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

代码细节:

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/560749
推荐阅读
相关标签
  

闽ICP备14008679号