#P14860. [ICPC 2021 Yokohama R] Cancer DNA
[ICPC 2021 Yokohama R] Cancer DNA
Description
潜在癌症调查中心 (ICPC) 发现了导致癌症的 DNA 序列模式!我们希望您编写一个计算机程序,近似计算一个随机 DNA 序列与给定模式之一匹配的概率。
DNA 序列可以用由四个字母 ‘A’、‘G’、‘C’ 和 ‘T’ 组成的字符串表示。一个 DNA 模式 是一个由这四个字母加上 ‘?’ 组成的字符串。如果模式中的每个字符要么是 ‘?’,要么与 DNA 序列中对应位置的字符相同,我们就说该 DNA 模式匹配一个相同长度的 DNA 序列。例如,模式 “AC?” 匹配 DNA 序列 “ACA”、“ACG”、“ACC” 和 “ACT”。
您的任务是编写一个程序,给定一组长度相同的 DNA 模式,计算一个均匀随机的相同长度 DNA 序列与任意给定模式匹配的概率。允许最多 的乘法误差。
Input Format
输入由单个测试用例组成,格式如下。
输入的第一行包含两个正整数 和 ,满足 和 。接下来的 行包含 个模式 。每个模式 是一个长度为 的字符串,由 ‘A’、‘G’、‘C’、‘T’ 和 ‘?’ 组成。
Output Format
设 是一个均匀随机选择的长度为 的 DNA 序列。设 为 与 中至少一个匹配的概率。输出是一个近似 的实数 。
如果 在 的乘法误差范围内近似 ,即
则判断输出 正确。
可以用指数部分表示,也可以不用。例如, 可以表示为 或 。
3 1
AC?
0.0625
6 2
AC??A?
A??A?T
0.0302734375
30 1
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
8.673617379884035e-19
Hint
在第一个样例中,长度为 3 的 DNA 序列有 种。有 4 个 DNA 序列 “ACA”、“ACG”、“ACC” 和 “ACT” 匹配模式 “AC?”。因此,概率为 。任何介于 和 之间的实数都被接受为正确输出。
如第三个样例所示,概率可能是一个很小的实数。注意,“0” 不是正确输出,因为 小于精确概率的 。
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号