#1202. 字符串

字符串

问题描述

给定 nn 个长度为 mm不同的 0101​ 字符串 s1,s2,,sns_1,s_2,…,s_n

一个长度为 nmnm0101 字符串 SS 是好的,当且仅当 S[1:m],S[m+1:2m],,S[(n1)m+1:nm]S[1:m],S[m+1:2m],…,S[(n-1)m+1:nm]nn 个子串两两不同,且每个子串均为 s1,s2,,sns_1,s_2,…,s_n 中的一个。

例如 s1=00,s2=01s_1=00,s_2=01,那么好的字符串有 0001,01000001,0100,容易发现好的字符串共有 n!n! 个。

AA 给出了一台 0101 编码机,当小 AA 按下 00 时有 pp 的概率编码机打出 001p1-p 的概率打出 11;当小 AA 按下 11 时有 pp 的概率编码机打出 111p1-p 的概率打出 00

编码机最多打出 nmnm 个字符,因此小 AA 希望其恰能打出一个好的字符串,已知小 AA 绝顶聪明,会根据当前编码机打出的结果动态调整自身策略,请问小 AA 最终能打出一个好的字符串的胜率。

输入格式

输入第一行,包含 22 个正整数 n,mn,m 和一个至多六位小数 pp

之后 nn 行,每行给出一个 mm 个字符的 0101sis_i

输出格式

输出一行,表示答案,如果你的答案与标准答案的绝对误差不超过 10910^{-9},则会被认为答案正确,否则答案错误。

样例输入1

3 2 0.5
00
01
10

样例输出1

0.093750000000

样例输入2

2 5 0.1234
01000
10100

样例输出2

0.305642115411

样例输入3

5 5 0.999
00000
00001
00010
00011
00100

样例输出3

0.984112560855

样例输入4

5 5 0.001
00000
00001
00010
00011
00100

样例输出4

0.984112560855

样例输入5

5 5 0.1
00000
00001
01010
01011
00100

样例输出5

0.163155870461

样例输入6

见下发文件。

样例输出6

见下发文件。

评测数据规模

对于 30%30\% 的数据,n2n \leq 2

对于 60%60\% 的数据,n18n \leq 18

对于所有测评数据,1n,m1000,0p11 \leq n,m \leq 1000,0 \leq p \leq 1