两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

什么是樹上隨機(jī)游走?我們可以假設(shè)給定一棵樹,樹的某個結(jié)點上有一個硬幣,在某一時刻硬幣會等概率地移動到鄰接結(jié)點上,問硬幣移動到鄰接結(jié)點上的期望距離。


1. 樹上隨機(jī)游走用到的定義:

● 所討論的樹 所討論的樹

● 結(jié)點的度數(shù)結(jié)點的度數(shù)

● 結(jié)點與 v 結(jié)點之間的邊的邊權(quán)結(jié)點與 v 結(jié)點之間的邊的邊權(quán)

● 結(jié)點的父結(jié)點結(jié)點的父結(jié)點

● 結(jié)點的子結(jié)點集合結(jié)點的子結(jié)點集合

● 結(jié)點的兄弟結(jié)點集合結(jié)點的兄弟結(jié)點集合


2. 向父結(jié)點走的期望距離

設(shè)樹上隨機(jī)游走代表 結(jié)點走到其父結(jié)點樹上隨機(jī)游走2的期望距離,則有:


 樹上隨機(jī)游走3

 

分子中的前半部分代表直接走向了父結(jié)點,后半部分代表先走向了子結(jié)點再由子結(jié)點走回來然后再向父結(jié)點走;分母樹上隨機(jī)游走代表從 u 結(jié)點走向其任何鄰接點的概率相同。

化簡如下:

樹上隨機(jī)游走

初始狀態(tài)為初始狀態(tài)

當(dāng)樹上所有邊的邊權(quán)都為 1 時,上式可化為:

樹上隨機(jī)游走

即 u 子樹的所有結(jié)點的度數(shù)和,也即 u 子樹大小的兩倍-1(每個結(jié)點連向其父親的邊都有且只有一條,除 u 與pu之間的邊只有 1 點度數(shù)的貢獻(xiàn)外,每條邊會產(chǎn)生 2 點度數(shù)的貢獻(xiàn))。


3. 向子結(jié)點走的期望距離

設(shè) g(u) 代表pu結(jié)點走到其子結(jié)點 u 的期望距離,則有:

向子結(jié)點走的期望距離

分子中的第一部分代表直接走向了子結(jié)點 u,第二部分代表先走向了父結(jié)點再由父結(jié)點走回來然后再向 u 結(jié)點走,第三部分代表先走向 u 結(jié)點的兄弟結(jié)點再由其走回來然后再向 u 結(jié)點走;分母d(pu)代表從08.png結(jié)點走向其任何鄰接點的概率相同。

化簡如下:

向子結(jié)點走的期望距離

初始狀態(tài)為樹上隨機(jī)游走。

代碼實現(xiàn)(以無權(quán)樹為例)

vector<int> G[maxn];

void dfs1(int u, int p) {
  f[u] = G[u].size();
  for (auto v : G[u]) {
    if (v == p) continue;
    dfs1(v, u);
    f[u] += f[v];
  }
}

void dfs2(int u, int p) {
  if (u != 1) g[u] = g[p] + f[p] - f[u];
  for (auto v : G[u]) {
    if (v == p) continue;
    dfs2(v, u);
  }
}
點贊(0)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)