CTSC2006 歌唱王國

2022-05-31 11:06:12 字數 839 閱讀 7161

補了一下概率生成函式。

寫的公式可能不規範請不要介意。

給出某個字串\(s\),你手中有個字串\(t\)一開始為空。每次隨機往\(t\)後加乙個字元,問\(s\)成為\(t\)的子串的期望次數。

字符集大小為\(c\)。

正解是一條式子。可以做到\(o(n)\)。

介紹下概率生成函式:\(f(x)=\sum_i p(i)x^i\),\(p(i)\)表示某個要求的變數最終值為\(i\)的概率。

於是有兩條性質:\(f(1)=1\)(即所有概率加起來),\(f'(1)=e\)。\(e\)表示期望,即\(\sum i p(i)\)。

回到這題。設\(f_i\)表示結束的時候長度為\(i\)的概率,\(g_i\)表示長度為\(i\)的時候還沒有結束的概率。\(f(x),g(x)\)分別為它們的生成函式。

顯然有\(f(x)+g(x)=xg(x)+1 (1)\)。

又根據意義可得\(g(x)(\fracx)^l=\sum a_if(x)(\fracx)^(2)\)。其中\(a_i\)表示\(i\)是否為\(s\)的\(border\)。意義:左式表示乙個還不包含\(s\)的串後面硬塞了乙個\(s\)的方案數;但這個時候可能會提前結束,右邊那個就是結束了之後再多塞了\(s_\)。由於在右邊\(f(x)\)相當於欽定了第乙個結束的位置,所以不會算重。

根據這兩個式子亂搞:

對\((1)\)求導得\(f'(x)=(x-1)g'(x)+g(x)\),代入\(x=1\)得\(f'(1)=g(1)\)。

對\((2)\)代入\(x=1\)得\(g(1)=\sum a_if(1)c^i\)。

兩條式子結合前面給出的兩條概率生成函式的性質,得到\(e=\sum a_ic^i\)。

CTSC2006 歌唱王國

是 sdoi2017 硬幣遊戲的弱化版 但是也不完全一樣 按照硬幣遊戲的題,f x sum a i x i 來刻畫第i位結尾的概率生成函式 然後 g x 表示以i結尾,前面的隨便選。p x 表示字首字尾的匹配 f g f g p 然後g變成形式冪級數,分母乘過去,求導。但是,這個題是 期望 而不是 ...

CTSC2006 歌唱王國 生成函式

bzoj1152 需要先來一手概率生成函式。定義概率生成函式 f x sum p y i x i 其中 p y i 表示 y 這個變數取 i 的概率,容易發現 f 1 1 對該概率生成函式求導 f x sum p y i i x 那麼可以發現 f 1 即是 y 的期望 接下來開始解決這道題。設 f ...

LG P4548 CTSC2006 歌唱王國

在歌唱王國,所有人的名字都是乙個非空的僅包含整數 1 sim n 的字串。王國裡生活著一大群咕嚕兵,他們靠不停地歌唱首領 牛人酋長們的名字來獲取力量。咕嚕兵每一次歌唱過程是這樣的 首先,他從整數生成器那兒獲得乙個數字,然後花乙個時間單位將此數字唱出來,如果他發現某個牛人酋長的名字已經被歌唱出來 即此...