洛谷1140相似基因

2021-09-06 06:55:44 字數 1179 閱讀 5620

兩個基因的相似度的計算方法如下:

對於兩個已知基因,例如agtgatg和gttag,將它們的鹼基互相對應。當然,中間可以加入一些空鹼基-,例如:

這樣,兩個基因之間的相似度就可以用鹼基之間相似度的總和來描述,鹼基之間的相似度如下表所示:

那麼相似度就是:(−3)+5+5+(−2)+(−3)+5+(−3)+5=9。因為兩個基因的對應方法不唯一,例如又有:

相似度為:(−3)+5+5+(−2)+5+(−1)+5=14。規定兩個基因的相似度為所有對應方法中,相似度最大的那個。

輸入格式:

共兩行。每行首先是乙個整數,表示基因的長度;隔乙個空格後是乙個基因序列,序列中只含a,c,g,t四個字母。1≤1≤序列的長度≤100。

輸出格式:

僅一行,即輸入基因的相似度。

輸入樣例#1:

7 agtgatg

5 gttag

輸出樣例#1:

14
思路:

​ 我們設dp【i】【j】為第乙個基因的1~i位和第二個基因的1~j位的最大相似值,那麼可以得到遞推公式dp【i】【j】=max(dp【i-1】【j】+ maps【i】【-】,dp【i】【j-1】 + maps【-】【j】,dp【i - 1】【j - 1】+ maps【i】【j】)

**:

#include #include #include using namespace std;

int maps[5][5] = ;

char s1[105], s2[105];

int dp[105][105] = ;

mapzcy;

int main ()

for (int i = 1; i <= m; i++)

for (int i = 1; i <= n; i++)

}printf("%d\n", dp[n][m]);

return 0;

}

如果有寫的不對或者不全面的地方 可通過主頁的****進行指正,謝謝

洛谷1140 相似基因

洛谷1140 相似基因 題目背景 大家都知道,基因可以看作乙個鹼基對序列。它包含了4種核苷酸,簡記作a,c,g,t。生物學家正致力於尋找人類基因的功能,以利用於診斷疾病和發明藥物。在乙個人類基因工作組的任務中,生物學家研究的是 兩個基因的相似程度。因為這個研究對疾病的 有著非同尋常的作用。題目描述 ...

洛谷P1140 相似基因

大家都知道,基因可以看作乙個鹼基對序列。它包含了4種核苷酸,簡記作a,c,g,t。生物學家正致力於尋找人類基因的功能,以利用於診斷疾病和發明藥物。在乙個人類基因工作組的任務中,生物學家研究的是 兩個基因的相似程度。因為這個研究對疾病的 有著非同尋常的作用。兩個基因的相似度的計算方法如下 對於兩個已知...

洛谷P1140 相似基因

大家都知道,基因可以看作乙個鹼基對序列。它包含了44種核苷酸,簡記作a,c,g,ta,c,g,t。生物學家正致力於尋找人類基因的功能,以利用於診斷疾病和發明藥物。在乙個人類基因工作組的任務中,生物學家研究的是 兩個基因的相似程度。因為這個研究對疾病的 有著非同尋常的作用。兩個基因的相似度的計算方法如...