比赛场次 | 538 |
---|---|
比赛名称 | 4043级NOIP2022欢乐赛6th |
比赛状态 | 已结束比赛成绩 |
开始时间 | 2022-11-18 18:40:00 |
结束时间 | 2022-11-18 22:30:00 |
开放分组 | 全部用户 |
注释介绍 | 从明天起,早睡早起,把最充沛的精力释放在NOIP时段。 |
题目名称 | 基因串 |
---|---|
输入输出 | gen.in/out |
时间限制 | 1500 ms (1.5 s) |
内存限制 | 128 MiB |
测试点数 | 15 简单对比 |
用户 | 结果 | 时间 | 内存 | 得分 |
---|---|---|---|---|
lihaoze | AAAAAAAAAAAAAAA | 0.856 s | 1.72 MiB | 100 |
nick | AAAAAAAAAAAAAAA | 1.074 s | 4.55 MiB | 100 |
基因串是由一串有限长度的基因组成,其中每个基因用 $26$ 个大写字母之一来表示,不同的字母表示不同的基因类型。一个单独的基因可以分裂成一对新的基因,而可能分裂的规则是通过一个有限的分裂规则集所决定的。每一个分裂的规则可以用三个大写英文字母 $A_1A_2A_3$ 来描述,这个规则的意思是基因 $A_1$ 可以分裂为一对基因 $A_2A_3$。
我们用大写字母 $S$ 来表示一类被称作超级基因的基因。因为每一个基因串都是由超级基因串(仅包含 $S$)根据给出的规则所分裂出来的。
请写一个程序:
第 $1$ 行包含一个正整数 $m$;
接下来 $m$ 行,每行都包括一个分裂的规则,每个规则由三个大写英文字母组成。
第 $m+2$ 行包含一个正整数 $t$;
接下来 $t$ 行,每行都有一个基因串。
共 $t$ 行,第 $i$ 行中你应该输出以下内容:
一个正整数,表示可分裂成输入的第 $i$ 个基因串所需的最短超级基因串的长度;
或一个单词 $NIE$(波兰语的“否”),表示无法由超级基因串分裂成该基因串。
6 SAB SBC SAA ACA BCC CBC 3 ABBCAAABCA CCC BA
3 1 NIE
点击下载样例2
对于其中 $5$ 组数据,$1 \leq m \leq 30,1 \leq t \leq 5$,基因串的长度不超过 $15$。
对于另外 $6$ 组数据,$1 \leq m \leq 20,1 \leq t \leq 5$,基因串的长度不超过 $100$。
对于另外 $4$ 组数据,$1 \leq m \leq 2000,1 \leq t \leq 3000$,基因串的长度不超过 $15$。