最近做了做蓝桥杯软件大赛的题目,做到了一道需要用动态规划解决的问题。网上搜了一下,发现可参考的资源非常少。可能大牛们都没怎么听说过软件大赛吧,那就让我这棵弱菜写篇博客,介绍一下自己的思路吧!
更改说明:
写完博客后,总感觉可能我的方法有点问题,所以又在网上找了别人的代码生成了几组数据,发现果然有出入,于是又从新审了一下 题,发现自己把题意理解错了。
请看题目第三个条件3.重码,也就是说如果要在一个位置插入G,则该位置的前一个位置也应该为G,所以思路需要修改一下。但是,至此仍不能保证算法的正确性。
声明:
由于我没有软件大赛的测试数据,所以只是测了一些自己想的数据,所以 不能保证算法的正确性,如有错误还望大家指正。另外,由于本人水平十分有限,博客写的可能很难看懂,并且也不严谨,还望大家见谅。
题目:
脱氧核糖核酸即常说的DNA,是一类带有遗传信息的生物大分子。它由4种主要的脱氧核苷酸(dAMP、dGMP、dCMT和dTMP)通过磷酸二酯键连接而成。这4种核苷酸可以分别记为:A、G、C、T。
DNA携带的遗传信息可以用形如:AGGTCGACTCCA.... 的串来表示。DNA在转录复制的过程中可能会发生随机的偏差,这才最终造就了生物的多样性。
为了简化问题,我们假设,DNA在复制的时候可能出现的偏差是(理论上,对每个碱基被复制时,都可能出现偏差):
1. 漏掉某个脱氧核苷酸。例如把 AGGT 复制成为:AGT
2. 错码ÿ