題目意思:給出k個模式串,然後隨機生成一個長度為L字符串,每個字符被選中的概率為pi 。 問構造出來的字符串不包含任何模式串的概率。
分析:顯然這是一個模式串的母串的匹配,顯然需要先構建一個AC自動機。我們用dp[i][j] 表示當前正在構造第i個字符,fail指針在j節點上能構造成功的概率。那麼我們可以順著fail指針向後面的狀態。 注意只能擴展有效狀態,也即不包含任何模式串的狀態。 也即
dp [i][j]->dp[i+1][ch[j][k] ]; ch[j][k] 表示如果選k字符的話的下一狀態。
VIEW CODE
#include
#include
#include
#include
#include
#include
#include
#include
#include