#P11873. 最大拟合

最大拟合

题目描述

在某一个平行世界里,小威是 Z 校的 ML 大佬,精通于各种机器学习模型。某一天,他在路上观察到了一只活泼的小狗,小狗的叫声忽高忽低,时断时续。小威很快就意识到了,小狗是不是在按照某种模式发出声音?于是乎在那一刹那,他毫不犹豫地认为,小狗发声的模式也可以通过机器学习获得。但是很遗憾,他只记住了某一段连续的小狗的叫声。如果用 HH 代表小狗的清吠,LL 代表小狗的低吼,那么这段连续的叫声会被建模成一段 HHLL 交织的序列……

此外,由于小威认为小狗是一种非常可爱专一但又健忘的动物,因此假定小狗的 attention 机制没有那么强,且在连续叫声中的第 ii 个声音只会与第 i1i-1i2i-2 个声音有关。为了方便建模,小威认为小狗的每一段连续叫声都会由两声清吠开始。

那么,他的目标是什么呢?虽然他希望能构建出一个能模拟小狗叫声的模型,但是数据少得让他"巧妇难为无米之炊"啊。因此,他觉得,只要能在他记住的唯一的一段连续叫声上最大拟合就可以了。

在数学上,我们假定最后的模型为 θ\theta,可以被视为一个值域为概率的映射,即

θ:[L,H]2×[L,H,γ]P\theta: [L, H]^2 \times [L, H, \gamma] \to \mathbb P

其中 γ\gamma 表示序列的结束标志。例如 θ(L,H;L)=0.6\theta(L, H; L) = 0.6,表示第 i2i - 2 个声音是 LL, 第 i1i - 1 个声音是 HH 的情况下,第 ii 个声音是 LL 的概率是 0.60.6

另外,小威把这段包含 mm 个声音的叫声序列称为 s[1:m]s_{[1:m]},并把最大拟合目标定义为

maxi=3m+1θ(si2,si1;si)\max \prod_{i=3}^{m+1} \theta(s_{i-2}, s_{i-1}; s_{i})

其中,sm+1s_{m+1} 不是任何叫声,仅代表叫声序列的结束标志。

由于最终结果可能过小,因此小威只需要你告诉他最大拟合结果的自然对数就好。

输入格式

输入包含一行一个字符串 SS,含义如上所述。长度不超过 10510^5

保证长度大于等于 2 且前两位必定为 HH

输出格式

输出一行一个实数,代表最大拟合的结果的自然对数。

相对误差或绝对误差不超过 10410^{-4} 可视为结果正确。

输入数据 1

HHH

输出数据 1

-1.38629

输入数据 2

HHHLHHLLHL

输出数据 2

-6.59167