owned this note
owned this note
Published
Linked with GitHub
# 台大電信丙
## 108
![](https://i.imgur.com/INcj7b8.png)
> False
> Dijkstra不行用在有negative weight edge的圖,就算圖是DAG也不行,因為在Dijkstra中,不會對已經被extract min掉的vertex再次進行relax,這也就是Dijkstra的正確性需要edge都是正的的原因。
![](https://i.imgur.com/HQKjiaR.png)
> F
> ![](https://i.imgur.com/PAygAQA.png)
![](https://i.imgur.com/f4iRo4b.png)
![](https://i.imgur.com/Ea6ynUC.png)
![](https://i.imgur.com/eCI7DfK.png)
> FT
> https://stackoverflow.com/questions/1857244/what-are-the-differences-between-np-np-complete-and-np-hard
![](https://i.imgur.com/Rs1lmw7.png)
![](https://i.imgur.com/6ag1hCM.png)
![](https://i.imgur.com/aOyN701.png)
![](https://i.imgur.com/ApEUwpS.png)
> C
> 印度神法 https://www.youtube.com/watch?v=OynWkEj0S-s&t=784s
![](https://i.imgur.com/1PKUMQa.png)
![](https://i.imgur.com/DMwvyCL.png)
> A
> Binomial heap insert amortized $\theta(1)$
> ![](https://i.imgur.com/NjzEcaA.png)
> ![](https://i.imgur.com/AeRwzoT.png)
![](https://i.imgur.com/bnIzjtm.png)
> A
> $2019 = 1024 + 512 + 256 + 128 + 64 + 32 + 2 + 1$
> $2019 = 2^{10} + 2^{9} + 2^{8} + 2^{7} + 2^{6} + 2^{5} + 2^{1} + 2^{0}$
> degree k的binomial **tree** root下 child的degree為 k-1, k-2, ..., 0
> degree 5的binomial **tree** root下有 1個 node degree = 5
> degree 6的binomial **tree** root下有 1個 node degree = 5
> degree 7的binomial **tree** root下有 degree 6, 5 的child,總共有1 + 1 = 2個node degree = 5
> degree 8的binomial **tree** root下有 degree 7, 6, 5 的child,總共有1 + 1 + 2 = 4個node degree = 5
> 以此類推,degree 10的binomial **heap**會有 1 + 1 + 2 + 4 + 8 + 16 = 32個node degree = 5
---
![](https://i.imgur.com/oj3QZ0i.png)
> D
> $F_0 = 0, F_1 = 1, F_2 = 2, ..., F_{13} = 233, F_{14} = 377$
> $F_{13} = 233 < 256 < F_{14} = 377$ 所以 degree即是13 - 2 = 11
![](https://i.imgur.com/Qh63gl0.png)
> C
> $F_{6+2} = F_8 = 21$
* 這兩題在問的是同一件事情,就是給定一個degree = k的Fibonacci heap,求其最少node數?
* 以下為推導過程
> ![](https://i.imgur.com/tgAyYCC.png)
> ![](https://i.imgur.com/hlUSAs9.png)
![](https://i.imgur.com/zvRLq0u.png)
![](https://i.imgur.com/YShT3bu.png)
![](https://i.imgur.com/ltlhfCR.png)
![](https://i.imgur.com/vojS1BC.png)
![](https://i.imgur.com/an03BEd.png)
![](https://i.imgur.com/oyXwJOa.png)
> A
> Fibonacci one decrease key amortized $\theta(1)$
![](https://i.imgur.com/5zlj64C.png)
> D
> Fibonacci one decrease key worst case $O(n)$
![](https://i.imgur.com/Z9kFFSH.png)
> C
> degree 6 node 的child degree 為 0, 0, 1, 2, 3, 4, 5,至多失去一個child,所以child degree 為 0, 0, 1, 2, 3, 4。
![](https://i.imgur.com/nFdlPpl.png)
> B
![](https://i.imgur.com/5AyOzKZ.png)
![](https://i.imgur.com/CvlVVeb.png)
> C
> with weighted union and path compression, one find operation worst case?
> cost of find operation is bounded by height, with weighted union it is $O(logn)$
![](https://i.imgur.com/oPZjKpt.png)
## 109
![](https://i.imgur.com/24b7PNu.png)
> A
> 計算?
> Binomial insert amortized $\theta(1)$
![](https://i.imgur.com/eVdqCSK.png)
> A
> ![](https://i.imgur.com/AeRwzoT.png)
> Binomial insert amortized $\theta(1)$
![](https://i.imgur.com/p6xaKO0.png)
> C
![](https://i.imgur.com/ITFh3Rr.png)
> C
> ![](https://i.imgur.com/YC6gu7i.png)
![](https://i.imgur.com/2jHpgMI.png)
> B
> height 最少的情況發生於Complete binary tree
> Complete binary tree height k 有 $2^{k+1} -1$個 node
> $2^{6+1} -1 = 63 < 100$
> $2^{7+1} -1 = 127 > 100$
> so AVL tree of 100 nodes has height **at least** 6
![](https://i.imgur.com/MC1ak4p.png)
> D
> $F_{k}$ is the $k^{th}$ fibonacci number
> AVL tree h = 0, #node = 1 = $F_2$ - 1
> AVL tree h = 1, #node = 2 = $F_3$ - 1
> AVL tree h = k, #node = 1 = $F_{k+2}$ - 1
> AVL tree h = 8, #node = 1 = $F_{8+2} - 1 = 89 - 1 = 88$
> AVL tree h = 9, #node = 1 = $F_{9+2} - 1 = 144 - 1 = 143$
> $88 < 100 < 143$
> so AVL tree of 100 nodes has height **at most** 8
![](https://i.imgur.com/zL0zEvp.png)
> A
> $4^{3+1} - 1 = 255$
> ![](https://i.imgur.com/KMgLQnK.png)
![](https://i.imgur.com/4VufJjv.png)
> E
> $2^{7+1} - 1 = 255$
![](https://i.imgur.com/6GIlBz4.png)
> D
> 2020 = 1024 + 512 + 256 + 128 + 64 + 32 + 4
![](https://i.imgur.com/H05r5lm.png)
> C
> Fibonacci delete-min amortized $O(logn)$
![](https://i.imgur.com/rhjJML0.png)
> ABCE
> ![](https://i.imgur.com/FWb5BdC.png)
> ![](https://i.imgur.com/egEtXib.png)
![](https://i.imgur.com/KUWs7pL.png)
![](https://i.imgur.com/RuFEfqB.png)
> AB
--
![](https://i.imgur.com/08k0b0D.png)
![](https://i.imgur.com/FFgryU3.png)
![](https://i.imgur.com/WxtQ1vp.png)
![](https://i.imgur.com/H0axYk7.png)
![](https://i.imgur.com/ngxfaDX.png)
![](https://i.imgur.com/1KivvyR.png)
![](https://i.imgur.com/d2kDRev.png)
![](https://i.imgur.com/JHEDrUv.png)
![](https://i.imgur.com/SmnNybr.png)
![](https://i.imgur.com/B633kMc.png)
![](https://i.imgur.com/AZn9k9B.png)
![](https://i.imgur.com/fRxn3We.png)
---
* Fibonacci heap專題
![](https://i.imgur.com/J34CVOy.png)
> Find-min 若有維持min pointer --> O(1)
> Union若是用doubly linked list串起來就是O(1)
![](https://i.imgur.com/8ntFs6X.png)
> find-min O(n) if you don't maintain a min-pointer
![](https://i.imgur.com/qYJax3o.png)
![](https://i.imgur.com/C4xmNhm.png)
![](https://i.imgur.com/q5JFsnK.png)
![](https://i.imgur.com/ymPOyao.png)
![](https://i.imgur.com/QUt6wu9.png)
![](https://i.imgur.com/uki2WhJ.png)
![](https://i.imgur.com/2eKgVAM.png)
![](https://i.imgur.com/1gr4suI.png)
![](https://i.imgur.com/9JS3sBo.png)