gpt4 book ai didi

algorithm - 具有最大异或值的范围内的两个值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:44:04 26 4
gpt4 key购买 nike

我们有两个约束 L 和 R(L<=R),我们必须找到两个值 i 和 j(l<=i<=j<=R),使得它们的异或最大。

我已经试过 O(n^2) 所以想要更好的东西。

最佳答案

这是您可以使用的解决方案(这会在 log(R) 中给出答案)

让我用一个例子来解释:

L=34R=45。将它们表示为位数组:

L = 100010     R = 101101

你从左边开始,直到找到第一个不匹配的形式:

L[i] = 0 and R[i] = 1

你总是会找到这个,因为 L < R。(如果 L==R,这是微不足道的情况,答案是 0)

从这里开始,将L的每一位更改为1,将R的每一位更改为0

您得到的数字将是您的ij,它们的异或将是您可以获得的最大值。

例如。 34 和 45

  100010 and 101101
1st mismatch at index 2 [0-based]
From there, change all L[i] to 1 and all R[i] to 0
=> i = 100111 and j = 101000
=> i = 39 and j = 40
and i^j = 15

关于algorithm - 具有最大异或值的范围内的两个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34155692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com