算法导论第三次习题课

18
算算算算算算算算算算

Upload: ganya

Post on 05-Jan-2016

216 views

Category:

Documents


2 download

DESCRIPTION

算法导论第三次习题课. 16.1-1 动态规划时间复杂度为 ,贪心算法时间复杂度为 。. 16.1-2 略 16.1-3 用两个链表分别存放空闲教室和繁忙教室,把活动按开始时间递增排序,依次调度教室,就可以获得最少教室数。调度方案是在繁忙教室队列中寻找是否有教室已经空闲,再在空闲教室队列中寻找空闲教室,如果都没有,就再增加一个教室。 说明:本题直接调用书上的算法 GREDDY-ACTIVITYSELECTOR( ) 来求是不对的,如下实例,按 GREDDYACTIVITY-SELECTOR( ) 求得需要 3 个教室,实际上只要 2 个教室. - PowerPoint PPT Presentation

TRANSCRIPT

算法导论第三次习题课

16.1-1 动态规划时间复杂度为 ,贪心算法时间复杂度为 。

3n

n

16.1-2 略16.1-3 用两个链表分别存放空闲教室和繁忙教室,把活动按开始

时间递增排序,依次调度教室,就可以获得最少教室数。调度方案是在繁忙教室队列中寻找是否有教室已经空闲,再在空闲教室队列中寻找空闲教室,如果都没有,就再增加一个教室。

说明:本题直接调用书上的算法 GREDDY-ACTIVITYSELECTOR( ) 来求是不对的,如下实例,按GREDDYACTIVITY-SELECTOR( ) 求得需要 3 个教室,实际上只要 2 个教室

i 1 2 3 4 5 6 7

s 0 0 3 4 7 8 6

f 3 4 5 7 8 9 9

16.3-1 略16.3-2 略16.3-5

用 2n-1 位表示树的结构,内部结点用 1 表示,叶子结点用 0 表示,以树的遍历为序。用 nlog(n) 位表示字母序列,每个字母的二进制编码长度为 log(n) ,总共需要 nlog(n)位。

17.1-1

不能保持,如执行 n次MULTIPUSH(s,n)

17.1-3

O(n)

平摊开销为 O(1) 。

lg

0

2 lg 1n

i

i

n n

17.2-2

每个操作都支付 3 元费用,若 i 不是 2 的幂次,则只用 1 元,剩下的 2 元用于支付那些是 2 的幂次的操作。

17.2-3

当某位被置为 1 时,用 1 元支付置位的实际代价, 2 元作为存款,其中 1 元将来该位变为 0 时使用,另外 1元 RESET 此位时使用

17.3-2

总代价为 O(n) ,平摊代价为 O(1) 17.3-6 设有两个栈 A, B ENQUEUE 操作为: push A DEQUEUE 操作为: if B is empty 将 A 中元素导入 B 中 if B is not empty pop B 平摊代价为 O(1)

01 1

( ) ( ) O nn n

i i ni i

C C D D

30.2-2 略30.2-4对 FFT 算法作如下修改即可:用 代替 ω ,并且将最后结果的每个元素除以 n 。

1w

30.2-5

22.2-2 略22.2-5 略22.2-7

先对 T 中任意一顶为根做 BFS ,记录最后遍历的顶点 u ,再以 u 为根做 BFS ,记录最后遍历的顶点 v, d(u,v)为 T 的直径。时间复杂度 O(V+E) 。

22.3-2 略22.3-3 略

22.4-1 略22.4-2 先对图进行拓扑排序,然后从 t到 s 依次计算 Pu

(以 u 为起点 t 为终点的路径数) Pu=ΣPv, v Adj(u)∈ Pt=1 , Pu=0 ,出度为 0 或在 t 的右边22.4-3方法很多,有些方法需要对每个连通片都进行计算。

24.1-3 m 未知时,则某一轮循环没有执行relax 操作时终止即可。

24.1-6

修改 Bellman-Food 算法,先找到负环上的一个节点,再依次找到负环上的其他节点。

24.2-2 最后一个顶点没有出度24.2-4

先进行拓扑排序,然后从右往左依次计算Pu (以 u 为起点的路径数)

Pu=Σ( Pv+1 ) , v Adj(u)∈ Pu=0 , u 的出度为 0

最后对所有 Pu 累加就是路径总数。

25.2-1 略 25.2-4

25.2-6 检查 Floyd_Warshall( ) 输出矩阵主对角线上的元素,如果存在负数,则存在权为负的回路。

1 1 1

1 1

, ( , ) min( ( , ) , ( , ) ( , ) )

, ( , ) 0, ( , ) ( , ) ( , ) ( , )

k k

k k k k

x k k k k

if i k d k j d i j d k k d k j

x d k k d k j d k j d i k d i k

。同理,即对于最外层的循环,矩阵 行 列元素的值不变,其它元素对更新没有影响。

25.3-1 略25.3-3 h(v)=0, h(u)=0, =w+h(u)-h(v)=w

25.3-5

w

1 1 2 1

1 1 2 1

0 ( , ) ( , ) ( ) ( )

( , ) ( , ) ( , ) ( , ) ( , )

( , ) ( , ) ( , ) ( , ) ( , )

0

( , ) 0, ( , )

( , ) 0

n n n

n n n

w u v w u v h u h v

w u v w v v w v v w v v w v u

w u v w v v w v v w v v w v u

w u v u v E

w u v

有 圈,

第 26 章

26.2-1

流: 19 ,容量:31

26.2-2

题目要求写Edmonds-Karp 算法的处理过程,注意读清题意

26.2-4

串匹配附加题

1、 0111121234

32 次2 、注意二进制串是从后

往前记录的,不是正向的!

3、 16 次

4、 17 次