思路:仍然是一道簡單的dp,首先我們來分析一下有幾種策略可以選擇
1.令第一條鏈的鹼基與空鹼基配對
2.令第二條鏈的鹼基與空鹼基配對
3.令兩條鏈的鹼基相互配對
那麼我們很容易就能夠得到狀態轉移方程了,
dp[i][j]表示第一條鏈的1~i部分與第二條鏈的1~j部分的最大匹配值
dp[i][j] = max
因為i和j都要用到之前的狀態,所以i和j都從1開始推
/**
* 題目: 洛谷oj: p1140 相似基因(dp)
* 題型: dp
**/#include #include #include using namespace std;
const int maxn = 100+10;
const int w[6][6] = ,,,
,,};int dp[maxn][maxn], a[maxn], b[maxn], n, m;
int create()
}int main()
} cout << dp[n][m] << endl;
return 0;
}
洛谷1140 相似基因
洛谷1140 相似基因 題目背景 大家都知道,基因可以看作乙個鹼基對序列。它包含了4種核苷酸,簡記作a,c,g,t。生物學家正致力於尋找人類基因的功能,以利用於診斷疾病和發明藥物。在乙個人類基因工作組的任務中,生物學家研究的是 兩個基因的相似程度。因為這個研究對疾病的 有著非同尋常的作用。題目描述 ...
洛谷1140相似基因
兩個基因的相似度的計算方法如下 對於兩個已知基因,例如agtgatg和gttag,將它們的鹼基互相對應。當然,中間可以加入一些空鹼基 例如 這樣,兩個基因之間的相似度就可以用鹼基之間相似度的總和來描述,鹼基之間的相似度如下表所示 那麼相似度就是 3 5 5 2 3 5 3 5 9。因為兩個基因的對應...
洛谷P1140 相似基因
大家都知道,基因可以看作乙個鹼基對序列。它包含了4種核苷酸,簡記作a,c,g,t。生物學家正致力於尋找人類基因的功能,以利用於診斷疾病和發明藥物。在乙個人類基因工作組的任務中,生物學家研究的是 兩個基因的相似程度。因為這個研究對疾病的 有著非同尋常的作用。兩個基因的相似度的計算方法如下 對於兩個已知...