早教吧作业答案频道 -->数学-->
一道关于异或的算法题,给你一个数列,叫你算出所有连续子序列的和的异或值就是例如(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)
通过记录中间值,以空间换时间,应该可以.
看了 一道关于异或的算法题,给你一...的网友还看了以下:
在25加25乘25减中,怎样加括号所得的数最大,怎样加括号所得的最少分别写出算是并计算. 2020-05-13 …
单片机编程计算分别计算内存单元(外存单元,ROM单元)40H—4FH的和,并将结果存 2020-05-14 …
一个圆柱体体积是250立方厘米 侧面积是100平方厘米 这个圆柱体的底面直径是多少cm 要详细点一 2020-05-16 …
已知三角函数求角比如说Sinα=0.11求α的值别说查表或者用计算器我就想问问我如果输进计算器它内 2020-05-19 …
选择适当的“+、-、×、÷、()”符号填入下列数字间:五分之一30.2四分之五,使其形成一个算是且 2020-05-19 …
会计核算是会计最基本的职能。()A.正确B.错误 2020-05-21 …
多选:以下关于会计职能的论述中,正确的是()A核算和监督是会计监督的基本职能B核算职能是会计最基本 2020-06-08 …
急!求5年级10到简便计算和10到脱试计算.10到简便计算和10到脱试计算.简便计算要小数的,最多 2020-06-10 …
七年级数学(2×3)ˆ2与2ˆ2×3ˆ2;[(-1∕3)×6]^2与(-1∕3)ˆ2×6ˆ2(2× 2020-07-09 …
计算劳务报酬某人一年内共取得5次劳务报酬,分别为3000,10000,22000,30000,10 2020-07-16 …