CS170 Efficient Algorithms and Intractable Problems Section1
课程主页:
https://inst.eecs.berkeley.edu/~cs170/fa18/
课程视频:
https://www.bilibili.com/video/BV1wK411g7ck
这次回顾Section 1。
1.Squaring vs multiplying: matrices
(a)
所以计算如下$5$个量即可
(b)
不正确,因为对于矩阵$a,b,c,d$,
所以一般情形无法分解为$5$个子问题。
(c)
此解法参考了官方解答:
对于矩阵$X,Y\in \mathbb R^{n\times n}$,构造矩阵
那么
所以可以在$\Theta ((2n)^c)= \Theta(n^c)$时间内计算$XY$。
2.Find the missing integer
首先讨论$N=2^{k}-1$的情形,注意到$[0, 2^{k} - 1]$中所有数每位的$0,1$数量和相等,所以可以按照如下方法计算,其中第$i$位是指从右往左数的序号,从$0$开始:
- 记当前集合为$A$
- 记比特数组为$b[k]$
- for $i = 0,…,k - 1$
- $A_0$表示$A$中第$i$位为$0$的数构成的集合,$A_1$表示$A$中第$i$位为1的数构成的集合
- 如果$|A_0| <|A_1|$,那么$A=A_0,b[i]= 0$
- 否则$A=A_1,b[i] =1$
解释:
以最低位为例,如果$|A_0| <|A_1|$,说明缺少了第$i$位为$0$的数;反之说明缺少了第$i$位为$1$的数。
时间复杂度:每次将规模减少一半,每次要遍历全部数字的某一位,所以:
如果$N\neq 2^{k} -1$,不妨假设$2^{k-1}\le N < 2^{k}-1$,那么补充$N+1,\ldots , 2^{k}- 1$,记$N_1= 2^{k}-1$,然后调用之前的算法即可,注意$N< N_1< 2N$,所以时间复杂度为
3.Complex numbers review
(a)
(i)
(ii)
(iii)
利用韦达定理可得和为
(b)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemonzzz!
评论
ValineLivere