早教吧作业答案频道 -->数学-->
一道关于异或的算法题,给你一个数列,叫你算出所有连续子序列的和的异或值就是例如(1,2,3),连续子序列有(1),(2),(3),(1,2),(2,3),(1,2,3),他们的和分别是1,2,3,3,5,6,就是计算1^2^3^
题目详情
一道关于异或的算法题,给你一个数列,叫你算出所有连续子序列的和的异或值
就是例如(1,2,3),连续子序列有(1),(2),(3),(1,2),(2,3),(1,2,3),他们的和分别是1,2,3,3,5,6,就是计算1^2^3^3^5^6的值,不能硬来的(会超时),有什么方法呢求救
就是例如(1,2,3),连续子序列有(1),(2),(3),(1,2),(2,3),(1,2,3),他们的和分别是1,2,3,3,5,6,就是计算1^2^3^3^5^6的值,不能硬来的(会超时),有什么方法呢求救
▼优质解答
答案和解析
先求 (1) :S1 = 1,记录下S1
再求 (1,2) S2 = S1 ^ 2 ^ (2+1) = 1 ^ 2 ^ 3 = 0,记录下S2和 2,3
再求 (1,2,3) S3 = S2 ^ 3 ^ (3+2) ^ (3+3) = 0 ^ 3 ^ 5 ^ 6 = 0
设个数是N
共需要算N次,每次计算k次加法和k次异或,共计算 N(N+1)次
算法时间复杂度是 O(N平方),空间复杂度是O(N)
这个复杂度是不会超时的.
如果直接硬来,
长度为k的子序列数量有 N+1-k 个
则共有N(N+1)/2个子序列,每个自序列需要计算k次加法.
最后大约计算 K的三次方/3 次加法,最后
这个时间复杂度是 O(N的3次方),空间复杂度是O(1)
通过记录中间值,以空间换时间,应该可以.
再求 (1,2) S2 = S1 ^ 2 ^ (2+1) = 1 ^ 2 ^ 3 = 0,记录下S2和 2,3
再求 (1,2,3) S3 = S2 ^ 3 ^ (3+2) ^ (3+3) = 0 ^ 3 ^ 5 ^ 6 = 0
设个数是N
共需要算N次,每次计算k次加法和k次异或,共计算 N(N+1)次
算法时间复杂度是 O(N平方),空间复杂度是O(N)
这个复杂度是不会超时的.
如果直接硬来,
长度为k的子序列数量有 N+1-k 个
则共有N(N+1)/2个子序列,每个自序列需要计算k次加法.
最后大约计算 K的三次方/3 次加法,最后
这个时间复杂度是 O(N的3次方),空间复杂度是O(1)
通过记录中间值,以空间换时间,应该可以.
看了 一道关于异或的算法题,给你一...的网友还看了以下:
1设x为无理数,但(x-2)(x+6)是无理数,则下列结论正确的是()A.x^2是有理数B.(x+ 2020-05-13 …
设x是无理数,但(x-2)(x+6)是有理数,则下列结论正确的是A.x^2是有理数B.(x+6)^ 2020-05-13 …
被很多人答错的小学数学题6÷2×(1+2)=? 2020-05-17 …
给出三个命题:1.点P(B,A)在抛物线Y=X^2+1上;2.点A(1,3)能在抛物线Y=AX^2 2020-05-17 …
英语翻译Height:6'2"这个英语Height是身高6'2",6'2"是什么啊,6尺2英寸,还 2020-06-15 …
怪数学题6=2×3因数是1,2,3,6共有4个12=2×2×3=2²×3¹,因数是1,2,3,4, 2020-06-22 …
一道初二数学实数复习题.|√6-√2|+|√6-3|+|√2-1|怎麼做?这题能+5:三次根号8+ 2020-06-27 …
音乐拍子问题6/8是以八分音符为一拍每小节有六拍,还是以八分音符为三分之一拍每小节有两拍。这是个复 2020-06-30 …
已知有无限个正整数k满足等式cos^2(k^2+6^2)=1,其中(k^2+6^2)是角度制表示方 2020-08-01 …
一道关于数字的题*6**2**3***1**5**47**8**2****7**1**5*2**3* 2020-11-02 …