P4087【SDOI2017】硬币游戏
问题描述
输入格式
输出格式
样例输入
3 3
THT
TTH
HTT
样例输出
0.3333333333
0.2500000000
0.4166666667
提示
这题显然的想到高斯消元,关键是如何建立方程。
不妨设每个人赢的概率分别为$P_1,P_2…P_n$,那么显然我们需要寻找他们之间的关系。
此题的关键在于假设一个状态$N$,他表示所有的没有人获胜的状态。
举个例子来说明,就以样例为例。
这三个人分别猜的是$THT,TTH,HTT$
考虑第一个人胜利的概率,那么如果在$N$后面接上一个$THT$,显然第一个人就胜利了。那么$P_1=\frac {1}{8}P_N$。这表示$N$后面三次扔硬币恰好是$THT$的概率。
但是显然这样不对,因为如果$N$的结尾是在T,那么扔出$TH$时,第二个人就已经赢了,也有可能结尾是$TH$,那么在扔出$T$时,第一个人已经赢了。需要把这些情况发生的概率减掉。
那么应该有$P_1=\frac {1}{8}P_N-\frac{1}{4}P_1-\frac{1}{2}P_2-\frac{1}{4}P_3$
对应的系数就是对应串出现的概率。实际上,当某个串的一个后缀等于当前串的一个前缀时,就会对当前串的概率造成影响。
由于此题数据较弱,可以暴力匹配。当然也可以用KMP。
代码:
1 |
|