SHOI2012 隨機樹 期望dp

2022-05-07 21:33:10 字數 764 閱讀 1961

初始 \(1\) 個節點,每次選定乙個葉子節點並加入兩個兒子直到葉子總數為 \(n\),問葉子節點深度和的平均值的期望以及最大葉子深度的期望。

\(n\leq 100\) .

\[p*\frac*\frac =\frac+2p}

\]也就有\(f_i=f_+\frac\)。

\[g_=\sum_^p_*\sum_x\sum_y[\max(x,y)+1=j]g_*g_

\]

#includeusing namespace std;

#define go(u) for(int i=head[u],v=e[i].to;i;i=e[i].last,v=e[i].to)

#define rep(i,a,b) for(int i=a;i<=b;++i)

#define pb push_back

typedef long long ll;

inline int gi()

while(isdigit(ch))

return x*f;

}templateinline bool max(t &a,t b)

fill(s[i]+i,s[i]+1+n,s[i][i-1]);

} double ans=0;

for(int j=0;j<=n;++j) ans+=f[n][j]*j;

printf("%.6lf\n",ans); }}

int main()

題解 SHOI2012 隨機樹

題目傳送門 不難看出,答案就是 1 sum 2 i 1 這個問真的很仙。可 bu 以 neng 想到,我們可以設 f 表示有 i 個葉子時深度 ge j 的概率,可以得到轉移式 f frac sum f f f times f 可以直接除以 i 1 是因為可以證明把兩顆子樹合併,只要總大小相同,那麼...

SHOI2012 火柴遊戲

鏈結 首先發現移動火柴操作可以放到最後做。每一次移動火柴一定可以看做是新增一根火柴再刪除一根火柴,並且可以將任意一次新增和一次刪除操作合併為一次移動操作,那麼可以考慮只使用新增和刪除操作,最後再計算出當前情況下使用幾次移動操作最優。然而發現並不清楚優先選擇新增還是刪除,但是我們知道當新增操作次數相同...

SHOI2012 回家的路

shoi2012 d2t1 2046 年 oi 城的城市軌道交通建設終於全部竣工,由於前期規劃周密,建成後的軌道交通網路由2n2n條地鐵線路構成,組成了乙個nn縱nn橫的交通網。如下圖所示,這2n2n條線路每條線路都包含nn個車站,而每個車站都在一組縱橫線路的交匯處。出於建設成本的考慮,並非每個車站...