CF204C Little Elephant and Furik and Rubik
题目描述
小象非常喜欢 Furik 和 Rubik,他们在克列缅丘格这个小城市相遇了。
小象有两个长度相等的字符串 $a$ 和 $b$,它们只包含大写英文字母。小象会从字符串 $a$ 和 $b$ 中,等概率地选择一对长度相等的子串——第一个来自字符串 $a$,第二个来自字符串 $b$。设从 $a$ 中选出的子串为 $x$,从 $b$ 中选出的子串为 $y$。
小象把字符串 $x$ 给 Furik,把字符串 $y$ 给 Rubik。
我们定义 $f(x, y)$ 为满足 $x_i = y_i$ 的位置 $i$ 的个数($1 \le i \le |x|$,其中 $|x|$ 表示 $x$ 和 $y$ 的长度,$x_i$、$y_i$ 分别是这两个字符串的第 $i$ 个字符)。请你帮助 Furik 和 Rubik 求出 $f(x, y)$ 的期望值。
输入格式
第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^{5}$),表示字符串 $a$ 和 $b$ 的长度。
第二行是字符串 $a$,第三行是字符串 $b$。两个字符串均由大写英文字母构成,且长度均为 $n$。
输出格式
输出一个实数,表示问题的答案。如果你的答案与标准答案的绝对误差或相对误差不超过 $10^{-6}$,则视为正确。
说明/提示
假设我们有字符串 $a = a_1 a_2 \ldots a_{|a|}$,那么我们记字符串的长度为 $|a|$,第 $i$ 个字符为 $a_i$。
子串 $a[l\ldots r]\ (1 \le l \le r \le |a|)$ 表示字符串 $a$ 从第 $l$ 位到第 $r$ 位的子串,即 $a_l a_{l+1} \ldots a_r$。
如果存在整数对 $l, r\ (1 \le l \le r \le |b|)$,使得 $b[l\ldots r] = a$,则称字符串 $a$ 是字符串 $b$ 的一个子串。
我们来看第一个示例。这个样例有 5 对可能的子串组合:("A", "B"),("A", "A"),("B", "B"),("B", "A"),("AB", "BA")。其中第二组和第三组的 $f(x, y)$ 都等于 $1$,其余的都为 $0$。每对组合被选中的概率都是 $\frac{1}{5}$,所以答案是 $\frac{1}{5} \cdot 0 + \frac{1}{5} \cdot 1 + \frac{1}{5} \cdot 1 + \frac{1}{5} \cdot 0 + \frac{1}{5} \cdot 0 = \frac{2}{5} = 0.4$。
由 ChatGPT 5 翻译