题目 3362:

蓝桥杯2026年第十七届省赛真题-基因研究

 时间限制: 1s 内存限制: 128MB

题目描述

    DNA 分子的四种碱基分别记为 A、T、G、C。每个人的基因序列都可以认为是一个由 A、T、G、C 四种字符组成的长度为 n 的字符串。

    小蓝正在研究一种疾病。他观察到,这种疾病存在一个固定的易感序列(也可认为是一个由 A、T、G、C 构成的字符串)。若某人的基因序列中存在一个子串恰好等于这个易感序列,则称此人“易感”;若基因序列的任意子串都不等于这个易感序列,则称此人 “不易感”。

    小蓝希望根据这座城市中人们的基因序列情况,估计出城里 “易感” 人群所占的比例。然而,直接获取整座城市中每个人完整的基因序列非常困难。为此,小蓝采用了抽样统计的方法:通过大量采样,他估计出了在这座城市中,每一个位置上碱基为 A、T、G、C 的人数占比。我们可以将其理解为:在所有人的基因序列中,第 i 个位置为 A、T、G、C 的人数占比分别是多少。

    为了简化模型,小蓝作出如下假设:对于任意一个人,其基因序列在每个位置上的碱基分布与采样结果完全一致,且不同位置之间的碱基相互独立。也就是说,即使已经确定了若干个位置上的碱基,剩余位置上的碱基仍然按照对应位置的分布独立生成。

    现在,小蓝决定将这些概率以模 998244353 的形式算出:如果 “易感” 人群所占比例为 pq ,则小蓝希望得到一个整数 x,满足 x × q ≡ p (mod 998244353)。

请你根据给定的易感序列,以及每个位置上四种碱基的概率分布,帮小蓝计算并输出这个整数 x。


输入格式

第一行包含两个正整数 n, m,分别表示基因序列长度和易感序列长度。

第二行包含一个长度为 m 的字符串 s,仅由 A、T、G、C 构成,表示疾病

对应的易感序列。

接下来 n 行,每行包含四个非负整数 ai, ti, gi, ci。其中:

• ai 表示第 i 个位置碱基为 A 的概率(模 998244353 意义下);

• ti 表示第 i 个位置碱基为 T 的概率(模 998244353 意义下);

• gi 表示第 i 个位置碱基为 G 的概率(模 998244353 意义下);

• ci 表示第 i 个位置碱基为 C 的概率(模 998244353 意义下)。

保证对任意 i,均有 (ai + ti + gi + ci) mod 998244353 = 1。


输出格式

输出一行,包含一个非负整数,表示“基因序列中包含易感序列作为子串”的人群占比在模 998244353 意义下的结果。

样例输入

3 2
AA
499122177 499122177 0 0
499122177 0 499122177 0
499122177 0 0 499122177

样例输出

623902721

提示

【样例说明】

基因序列共有 3 个位置:

• 第 1 位有 1/2 的概率是 A,有 1/2 的概率是 T;

• 第 2 位有 1/2 的概率是 A,有 1/2 的概率是 G;

• 第 3 位有 1/2 的概率是 A,有 1/2 的概率是 C。

易感序列为 AA。因此,一个人被视为“易感”,当且仅当其基因序列中包含子串 AA。

所有可能产生的基因序列中,满足条件的共有 3 种,分别是 AAC、TAA和 AAA。这 3 种序列出现的概率均为 1/8,因此“易感”人群所占的总比例为1/8 + 1/8 + 1/8 = 3/8,其在模 998244353 意义下的结果为 623902721。


【评测用例规模与约定】

对于 30% 的数据,1 ≤ m ≤ n ≤ 5;

另存在 20% 的数据,ai = ti = gi = ci;

对于 100% 的数据,1 ≤ m ≤ n ≤ 3000, 0 ≤ ai, ti, gi, ci < 998244353。


标签