# 交大 107 軟體
###### tags: `NCTU` `107` `軟體`
1. 19
2. 13456789 / 14653987
3.
```
[11]
(2) [14]
[1] [7] (15)
(5) (8)
(9)
```
```
[11]
(2) [14]
[1] (7) (15)
[5] [8]
(9)
```
```
[11]
(7) [14]
(2) [8] (15)
[1] [5] (9)
```
```
[7]
(2) (11)
[1] [5] [8] [14]
(9) (15)
```
4. $T(n)=T(\frac{n}{2})+O(1),\ T(n)=lgn$ by master method
5. 19
:::info
所有的節點串起來,會是一棵完全二元樹。
foo1 會將所有節點的左右子樹對調。
foo2 是用後序走訪整棵樹,順序從 0 開始如下(X 代表 NULL):
XX$n_7$XX$n_6n_3$XX$n_5$XX$n_4n_2n_1$
而順序為偶數的要加起來,有$n_7,n_3,n_4,n_1$
所以答案為 4+1+8+6=19
:::
6. 7
7. (a) $O(VE + V^2lgV)$
(b)
- 所有的邊經過 reweight 後皆為非負整數
proof:
對於任意邊 (u, v),滿足 $h(v)\le h(u) + w(u,v)$
移項可得 $h(u)-h(v)+w(u,v)\ge 0$
- 任兩點之間的任何路徑,其最短路徑在經過 reweight 後,依然是該兩點之間的最短路徑
proof:
給定任意兩點 u, v,以及任一一條串連兩點的路徑 $<u,v_1,v_2,v_3,...,v_n,v>$
其長度為:$h(u)-h(v_1)+w(u,v_1)+h(v_1)-h(v_2)+w(v_1,v_2)+...+h(v_n)-h(v)+w(v_n,v)=\\h(u)-h(v)+w(u,v_1)+w(v_1,v_2)+...+w(v_n,v)$
可發現任意路徑的權重增幅皆為 h(u)-h(v)。因此原本的最短路徑,經過 reweight 後,依然是該兩點之間的最短路徑。
8. ...略
9. (a) A[i] - k (b) A[i]
:::info
找落差最大的那一段
:::
10.
Suppose G=(V,E)
Step1: let $V'=V\ \cup\ \{s,t,a,b\}$
Step2: let $E'=E\ \cup\ \{\{s,v\},\{v,t\}\ |\ v\in V, v\ne x\}\ \cup\ \{\{a,s\},\{b,t\}\}$
Step3: run HamP(G'=(V',E'))
若 G' 存在 HP,則其必為此形式:
<a,s,u,....,v,t,b>
其中 u 和 v 皆不為 x
把 s, t, a, b 拿掉,即為不以 x 為端點的 HP
反過來講,若 G 存在不以 x 為端點的 HP: <u,...,v>,則利用上述方法構建 G',必存在一條 HP: <a,s,u,...,v,t,b>