眾所周知,自然界的所有生物都有自己的基因序列。但是各個生物之間,或多或少是有一些基因序列是相同的,現在請你來幫幫忙,計算一下兩個生物之間的基因序列相似度。
例如生物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的含義設定 含義中那個 不計算空鹼基 的設定真的是絕了,不然真的,寫不出狀態轉移方程出來的 鬼知道能加多少個空鹼基 這個...