2序列比對問題

2021-08-03 06:34:13 字數 791 閱讀 5642

str1=abdad

str2=bacd

兩字串進行序列比對,定義乙個可以用來衡量比對效能的得分函式

令f(x,y)表示x與y比對的得分。假設x和y都是字元,如果x與y相同,那麼f(x,y)=2,如果x與y不同,那麼f(x,y)=1,如果x或y是「-」,那麼f(x,y)=-1。

str1和str2的2序列比對問題是找到具有最多得分的兩序列比對。

狀態公式:

a(0,0)=0;

a(i,0)=0;

a(0,j)=0;

a(i,j)=max;

**如下

//動態規劃

#include#includeusing namespace std;

const int max=1000;

int maxlen[max][max];

int main()

for(i=0;i<=str2.length();++i)

for(i=1;i<=str2.length();++i)

} for(i=0;i<=str2.length();++i)

if(pos2==str2.length())

if(str1[pos1]==str2[pos2])else

dfs(pos1,pos2+1,score-1);

dfs(pos1+1,pos2,score-1);

return ;

}int main(){

cin>>str1>>str2;

dfs(0,0,0);

cout<

序列比對 七 序列比對之線性空間演算法

原創 hxj7 一般而言,運用動態規劃演算法進行序列比對對記憶體空間的要求是 o mn 階的,本文介紹了一種線性空間要求的序列比對方法。前文如 序列比對 一 全域性比對needleman wunsch演算法 所介紹的運用動態規劃演算法進行序列比對時,對記憶體空間的要求是o mn 階的。如果只是要求最...

STL學習2 序列容器

三種 vector,list,queue 基礎 陣列,鍊錶,陣列 支援函式 front,back,push back,pop back 可以動態的改變它的大小,可以彼此賦值,但陣列表示位址常量就沒這功能。vector就像陣列一樣,是連續的。在末尾插入非常高效,中間就不行。要想經常在兩端插入刪除,最好...

入門訓練 2 序列求和

問題描述 求1 2 3 n的值。輸入格式 輸入包括乙個整數n。輸出格式 輸出一行,包括乙個整數,表示1 2 3 n的值。樣例輸入 4樣例輸出 10樣例輸入 100說明 有一些試題會給出多組樣例輸入輸出以幫助你更好的做題。一般在提交之前所有這些樣例都需要測試通過才行,但這不代表這幾組樣例資料都正確了你...