3 9 F 基因相似度

2021-10-03 16:30:23 字數 1350 閱讀 6667

眾所周知,自然界的所有生物都有自己的基因序列。但是各個生物之間,或多或少是有一些基因序列是相同的,現在請你來幫幫忙,計算一下兩個生物之間的基因序列相似度。

例如生物a的基因序列為abc ,那麼生物a的基因序列可以拆分成 a , b , c , ab , ac , bc , abc

例如生物b的基因序列為qbc,那麼生物b的基因序列可以拆分成 q , b , c , qb , qc , bc , qbc

那麼這兩種生物共有的最長相似基因序列為bc,bc各佔生物a和b總基因序列的 66.67%

請注意,相似的基因序列必須序列順序也相同,ab與ba不是相似基因序列。

測試樣例由多組測試資料組成。每組測試資料第一行輸入乙個字串s1 (1<= s1.length <=2000),第二行輸入乙個字串s2 (1<= s.length <=2000) ,分別代表兩個生物的基因序列。基因序列均由小寫字母組成

輸出兩個生物相似的最長基因序列佔自己本身的基因序列的百分比保留2位小數

qdwde

qwe60.00% 100.00%

一道dp題目。通過dp挖出最長公共子串行。

核心**:dp [ i + 1 ] [ j + 1 ] = max ( dp [ i ] [ j + 1 ] , dp [ i + 1 ] [ j ] ) ;

如果沒有看懂的**,可以用畫圖法來理清楚**的終極奧義。

把所有字元跑一遍就可以了。

% 輸出是 %%

#include

using namespace std;

string s1,s2;

int dp[

2005][

2005];

double a,b,c;

intmain()

else}}

c=dp[s1.

length()

][s2.

length()

];a=

(double

)c/s1.

length()

*100

; b=

(double

)c/s2.

length()

*100

;printf

("%.2lf%% %.2lf%%\n"

,a,b);}

return0;

}

問題 F 基因相似度

眾所周知,自然界的所有生物都有自己的基因序列。但是各個生物之間,或多或少是有一些基因序列是相同的,現在請你來幫幫忙,計算一下兩個生物之間的基因序列相似度。例如生物a的基因序列為abc 那麼生物a的基因序列可以拆分成 a b c ab ac bc abc 例如生物b的基因序列為qbc,那麼生物b的基因...

Nowcoder挑戰賽39F 模板樹上莫隊

給定一棵樹,求兩點路徑上的不同權值個數和權值是k的倍數的個數 第二問可以直接離線詢問,暴力 n sqrt 列舉因數更新答案,路徑作差 第一問是樹上莫隊模板題 樹上莫隊 在括號序列上跑莫隊,對於單鏈和雙鏈要分類討論,更改權值上也有細微差別,還要特判lca的情況 合理壓行和利用c 11有效縮短 不知道官...

dp 相似基因

大致思路 dfs也寫了dp也寫了然後發現題讀錯了。所以比賽的時候一定要先把題多讀兩遍每個句子都給它讀懂!這裡兩個字串都可以加入空鹼基!這道題用dp做,難點在 呢?我認為難點在於dp的含義設定 含義中那個 不計算空鹼基 的設定真的是絕了,不然真的,寫不出狀態轉移方程出來的 鬼知道能加多少個空鹼基 這個...