小编Dee*_*mar的帖子

子序列的最大长度,使得每个连续元素的按位异或为 k

我试图解决这个问题,我们必须找到子序列的最大长度,使得每个连续元素的 XOR 等于 keg :Array = [3,2,4,3,5] 和 k=1。答案是 3。 subsequence = [3,2,3]

到目前为止,我已经尝试过这些方法:

  1. 朴素的双循环解决方案,我们将使用两个循环并找到 XOR 等于 k ​​的子序列。这种方法让我超时,因为数组中的元素数量可以达到 10^5。伪代码:
int finalAns=0;
loop (i=0...n):
  int xortillnow = array[i], count=1;  // since we have already selected one element
  loop(j=i+1..n):
      if((xortillnow ^ array[i])==k):
          count++;
          xortillnow = xortillnow ^ array[i];
   finalAns = max(count,finalAns);
Run Code Online (Sandbox Code Playgroud)

2.Second 我正在考虑动态编程,我可以在其中存储已经计算出的子序列的异或,但我无法完成算法。

有人可以告诉一些解决这个问题的其他方法。

algorithm xor subsequence

4
推荐指数
1
解决办法
1434
查看次数

标签 统计

algorithm ×1

subsequence ×1

xor ×1