牛客練習賽23 托公尺的遊戲 概率,期望

2021-08-21 21:11:01 字數 711 閱讀 9059

題目背景編不下去了

托公尺有一棵有根樹 t, 樹根為1,每輪他會在剩下的子樹中等概率乙個點 u, 砍掉 u 的子樹 (包含 u),如果樹上的點都被砍光了,遊戲結束。

求出這個遊戲進行的期望輪數,可以證明這個數一定是有理數,設他為

第一行輸入乙個數 n, 表示 t 的點數,下面 n-1 行給出了 t 的每條邊
一行乙個整數表示答案
思路:

對於每乙個點,要比它所有的父節點都要先選擇,

否則此節點就會被刪掉,因此每個點貢獻的期望

是1/dep[i],dep表示每個點的深度。

**:#includeusing namespace std;

#define ll long long

const ll mod=998244353;

const int maxn=1e5+10;

vectorg[maxn];

ll dep[maxn],inv[maxn];

void dfs(int v,int fa)

}int main()

dfs(1,0);

ll ans=0;

for(int i=1;i<=n;i++)

ans=(ans+inv[dep[i]])%mod;

printf("%lld\n",ans);

return 0;

}

牛客練習賽23 F 托公尺的遊戲 (爆搜 逆元)

題目 思路 其實輪數的期望就是每個點被選中的期望,我們可以發現我們選這個點要在他到根的路徑上的點集中第一次選中 不然他 就被砍掉了 就是直接求他的深度即可。期望就是1 dep i 之和。include using namespace std const int n 1e5 10 const int ...

牛客練習賽23 C 托公尺的位運算

point 首先明確,題目是讓我們從n個數中挑出k個數,他們 上之後的lowbit最大。在lowbit最大的前提下,k最大。遍歷答案v,即lowbit 2 v。for迴圈遍歷陣列,若在第v位存在1 二進位制 我們則肯定取這個數。因為最後k個數一起 後,如果存在答案,肯定是 xx100000這樣的形式...

牛客練習賽23 C 托公尺的位運算

托公尺完成了1317的上乙個任務,十分高興,可是考驗還沒有結束 說話間1317給了托公尺 n 個自然數 a1.an,托公尺可以選出一些帶回家,但是他選出的數需要滿足一些條件 設托公尺選出來了k 個數 b1,b2.bk,設這個數列 b 的給值為 b 中所有數按位與的結果,如果你能找到乙個整除 b 的最...