https://onlinejudge.org/index.php?option=onlinejudge&Itemid=8&page=show_problem&problem=3661
解題策略:樹狀結構DP
num[u][1]表示以u為根節點的子樹,有使用u的最多人數
num[u][0]表示以u為根節點的子樹,不使用u的最多人數
flag[u][1]=1,表示以u為根節點的子樹,有使用u且方案唯一
flag[u][1]=0,表示以u為根節點的子樹,有使用u且方案不唯一
flag[u][0]=1,表示以u為根節點的子樹,不使用u且方案唯一
flag[u][0]=0,表示以u為根節點的子樹,不使用u且方案不唯一
如果使用u,對u的所有子節點v,都不能選
num[u][1]=sum(num[v][0]),
當所有flag[v][0]都是1,才能設定flag[u][1]為1
如果不使用u,對u的所有子節點v,可以選也可以不選
num[u][0]=sum(max(num[v][0],num[v][1])
以下方案不唯一
當num[v][0]==num[v][1],設定flag[u][0]為0
如果num[v][0]>num[v][1],不選的人數比較多,flag[v][0]不唯一,則flag[u][0]也不唯一
如果num[v][0]<num[v][1],選的人數比較多,flag[v][1]不唯一,則flag[u][0]也不唯一