yukicoder-422
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
{{{
#!html
<script type="text/x-mathjax-config">MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}});</script>
<script type="text/javascript" async src="http://10.71.10.90/sfiction/tool/MathJax/MathJax-master/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<style>
.input, pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: #333;
word-break: break-all;
word-wrap: break-word;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 4px;
}
</style>
}}}
== [https://yukicoder.me/problems/no/422 No.422 文字列変更 (Hard)] ==
=== Description ===
{{{
#!html
<p>有一个长度为$n$的字符串$S$和一个长度为$m$的字符串$T$,它们由字符'A','T','G','C'组成。</p>
<p>现在需要把$S$变成$T$,你可以进行如下三种操作:
<ul>
<li>置换:选择一个$S_i$,把它变成'A','T','G','C'中某一个,代价是5。</li>
<li>删除:删除$S$任意一个子串,可以删除空串。如果删了$N$个字符,那么代价是$9+2(N-1)$。</li>
<li>插入:在$S$的任意位置插入一个由'A','T','G','C'组成的字符串。如果插入了$N$个字符,那么代价是$9+2(N-1)$。</li>
</ul>
</p>
<p>求一个代价和最小的操作序列,并输出方案。如果你删了某个字符,在$S$对应位置显示'-',如果你插入了一个字符,在$T$对应位置显示'-'。</p>
}}}
=== Input ===
{{{
#!html
<p class="input">
$n$ $m$<br>
$S$<br>
$T$
</p>
<p>$1 \le n, m \le 1200$</p>
}}}
=== Output ===
{{{
#!html
<p>第一行输出最小代价,第二行和第三行输出方案。如果有多个方案,输出任意一个即可。</p>
}}}
=== Sample ===
==== Sample 1 ====
输入
{{{
#!html
<pre>
20 24
GAGTGGATCTGCGAATCTTG
GAGTTCTGTACTAAGCGCCGTGTC
</pre>
}}}
输出
{{{
#!html
<pre>
61
GAGTGGATCTG--CGAATC-----TTG
GAGT---TCTGTACTAAGCGCCGTGTC
</pre>
}}}
No.422 文字列変更 (Hard)
Description
有一个长度为$n$的字符串$S$和一个长度为$m$的字符串$T$,它们由字符'A','T','G','C'组成。
现在需要把$S$变成$T$,你可以进行如下三种操作:
- 置换:选择一个$S_i$,把它变成'A','T','G','C'中某一个,代价是5。
- 删除:删除$S$任意一个子串,可以删除空串。如果删了$N$个字符,那么代价是$9+2(N-1)$。
- 插入:在$S$的任意位置插入一个由'A','T','G','C'组成的字符串。如果插入了$N$个字符,那么代价是$9+2(N-1)$。
求一个代价和最小的操作序列,并输出方案。如果你删了某个字符,在$S$对应位置显示'-',如果你插入了一个字符,在$T$对应位置显示'-'。
Input
$n$ $m$
$S$
$T$
$1 \le n, m \le 1200$
Output
第一行输出最小代价,第二行和第三行输出方案。如果有多个方案,输出任意一个即可。
Sample
Sample 1
输入
20 24GAGTGGATCTGCGAATCTTGGAGTTCTGTACTAAGCGCCGTGTC
输出
61GAGTGGATCTG--CGAATC-----TTGGAGT---TCTGTACTAAGCGCCGTGTC