题目大意
Part1. 给主串与子串,求每个子串出现次数。
Part2. 有k个回合,每一回合“所有出现次数最小的子串“ 会有p的概率被一起删除,求每一个子串留下的概率。
Part1 直接上ac自动机,注意fail[root]=root,然后特判。
Part2 用一个概率递推
很容易想到不需要知道到底有哪些被删除了,只需要知道在第i轮删k次的概率就可以了。 答案就是
∑rank[i]−1j=0f[k][j]
rank[i]就是第i个串按出现次数排序后的序号。 第rank[i]次删除才会删掉i。