# 清大 105 軟體
###### tags: `NTHU` `105` `軟體`
1. (A) prefix: */+abc-de / postfix: ab+c/de-*
(B)
A
/|\
/ | \
/ | \
B D G
/ \ / \
C EF I
/
H
\(C\)
55 45
/ \ / \
37 77 37 77
\ / \ /
41 60 41 60
/ \ \ / / \
38 45 70 38 55 70
\ \
40 40
(D) preorder 最開頭的為根,在 inorder 中,根的兩邊即為左右子樹,不會有第二種可能。
(E) 當只有一個子樹時,子樹可為左子樹或右子樹。舉例:
pre: AB, post: BA 有兩種可能:
A A
/ \
B B
(F)
```c=
void longestDelay(node *root, int AccDelay)
{
if (root == NULL) {
MAX = MAX < AccDelay ? AccDelay : MAX;
return;
}
longestDelay(root->lchild, AccDelay + root->delay);
longestDelay(root->rchild, AccDelay + root->delay);
}
```
2. (A) $A^* = \{(a, b)\ |\ there\ is\ a\ path\ of\ length \ge\ 0\ between\ a\ and\ b\ in\ G\}$\
(B) All-pairs shortest path
\(C\) 如果圖中不包含 cycle of odd length,則可以用以下方式建構二分圖:
a. 隨機選取一個點,加進 L
b. 將與 L 所有相鄰的點加進 R。R 中的點不可能相鄰,否則就會有 odd cycle
c. 將所有與 R 相鄰的點加進 L。同理,L 中的點不可能相鄰。
重複 bc 直到所有點皆屬於 R 或 L
(D) topological sort: $<v_{i_1}, v_{i_2}, ...,v_{i_n}>$ 滿足: $\forall x, y, 1\le x<y\le n\ such\ that\ (v_{i_y}, v_{i_x}) \notin E$
(E) 用 DFS 遍歷所有點,紀錄離開的時間。以離開的時間依序由大到小排序的結果,即為 topological sort
3. (A) 4, 2, 9
(B) 9
\(C\) $a_n=2\times 4^n$, $b_n=4^n$
4. (A) $\frac{7!}{2!3!}$
(B)
$$
g(x) = a_1 + a_2x+a_3x^2+a_4x^3+...\\
-8g(x)=-8a_1x -8a_2x^2-8a_3x^3-...\\
$$
兩式相加得
$$
(1-8x)g(x)=9+10x+(10x)^2+(10x)^3+...=8+\frac{1}{1-10x}\\
g(x)=\frac{4}{1-8x}+\frac{5}{1-10x}
$$
得 $a_n=4\cdot8^{n-1}+5\cdot10^{n-1}$
\(C\) 無聊
5. (A)
將 u 和 v 分成 $$u_2\cdot2^\frac{n}{2}+u_1\\ v_2\cdot2^\frac{n}{2}+v_1$$
分別計算:
$$
(u_2+u_1)(v_2+v_1)\\
(u_2-u_1)(v_2-v_1)\\
u_1v_1
$$
三式聯立可得:
$$
u_1v_1\\
u_2v_2\\
u_1v_2+u_2v_1
$$
$u_1v_1 + u_2v_2\cdot2^n+(u_1v_2+u_2v_1)\cdot2^\frac{n}{2}$ 即為所求
(B) FFF
6. (A) $\begin{pmatrix}1&1&-1\\2&2&1\\-1&-1&3\end{pmatrix}$
(B) 51