【概率與期望】【組合計數】TopCoder SRM 561 Orienteering
題意:
給出一顆樹,樹上有些選中點 ,現在隨機從中選擇一個大小為 的子集 ,計算出一條包含所有 中的點的最短路徑 ,求 的期望長度。
點數
分析:
每個
中的點在路徑
上第一次被訪問的順序為:
性質1:
顯然,路徑
的起點必為
,終點必為
並且,
是由
組成。其中
表示從u到v的最短路徑。
證明:因為是第一次出現的順序,所以若不是最短路徑,則最短路徑一定更優。
性質2:
對於任意一條邊
,其出現在
中的充要條件為:
分開的兩個聯通塊中,均有點
證明略。
性質3:
對於任意一條邊
,其最多出現2次。
證明略。
性質4:
對於任意一條邊
,其出現一次的充要條件為:
。
證明:如果把這條路徑連上,則形成了一條迴路,迴路中每條邊都一定訪問2次。由性質1可得,這條迴路從
回到
的過程中,一定走的是最短路。現在把這條
路徑刪去,這條路徑上的邊就只走了一次。
現在,有了這麼一堆性質,很容易發現:對於一個固定的
(隨機出來的大小為k的
的子集),其最短路徑
的長度為:
其中
是一定存在於路徑
上的邊的集合(即滿足性質2的邊的集合)。
是從
到
的最短路。
是固定的,因此要使得 儘可能大,即 為 中的最遠點對。
根據期望的性質,對於這兩個部分,可以分開考慮其期望貢獻。(即分別算出 和 )
計算
顯然要考慮算每條邊的貢獻。
( 是 的概率)
考慮 兩側的聯通塊 ,
顯然