题目链接:https://acs.jxnu.edu.cn/problem/HDU1674
描述:
进化是一个看似随机的过程,其工作方式类似于我们用来获得困难组合问题近似解的某些方法。你现在要做的是完全不同的事。
给出用字母表{A,C,G,T}中的字母组成的DNA字符串S,你需要找到能够造出另外的DNA字符串T所需的最简短的复制行为的数量。你可以反转你复制的字符串,可以从字符串S和你的部分字符串T复制。你可能在任何时候将这些片段合在一起。你只能从字符串T中复制连续的部分,并且所有被复制的字符串都要出现在最后的T中。
例如:S = “ACTG” 创造 T = “GTACTATTATA”。
1.通过复制和反转S中的“TG”得到GT……。
2.通过复制S中的“AC”得到GTAC…。
3.通过复制T中的“TA”得到GTAC…TA…。
4.通道复制和反转T中的“TA”得到GTAC…TAAT。
5.通过复制T中的“AAT”得到GTACAATTAAT。
输入:
第一行输入包含一个整数,1 <= t <= 100,表示测试数据组数。随后每一组测试数据包括一行长度1 <= m <= 18的字符串S和一行长度1 <= n <= 18的字符串T。
输出:
每组测试数据输出由S创造T的复制行为的次数,如果做不到就输出“impossible”。
样例输入:
5
ACGT
GTAC
A
C
ACGT
TGCA
ACGT
TCGATCGA
A
AAAAAAAAAAAAAAAAAA
样例输出:
2
impossible
1
4
6