Pku acm 1080 Humman Gene Function 动态规划题目解题报告(八)
2008-01-01 11:58
531 查看
http://acm.pku.edu.cn/JudgeOnline/problem?id=1080
这是一道比较经典的DP,两串基因序列包含A、C、G、T,每两个字母间的匹配都会产生一个相似值,求基因序列(字符串)匹配的最大值。
这题有点像求最长公共子序列。只不过把求最大长度改成了求最大的匹配值。用二维数组opt[i][j]记录字符串a中的前i个字符与字符串b中的前j个字符匹配所产生的最大值。假如已知AG和GT的最大匹配值,AGT和GT的最大匹配值,AG和GTT的最大匹配值,求AGT和GTT的最大匹配值,这个值是AG和GT的最大匹配值加上T 和T的匹配值,AGT和GT的最大匹配值加上T 和-的匹配值,AG和GTT的最大匹配值加上-和T的匹配值中的最大值,所以状态转移方程:
opt[i][j] = max(opt[i-1][j-1]+table(b[i-1],a[j-1]),opt[i][j-1]+table('-',a[j-1]),opt[i-1][j]+table('-',b[i-1]));
第0行,第0列表示null和字符串匹配情况,结果是’-’和各个字符的累加:
opt[num2][num1]即为所求结果。
for(i=1;i<=num1;i++)
opt[0][i] = opt[0][i-1]+table('-',a[i-1]);
for(i=1;i<=num2;i++)
opt[i][0] = opt[i-1][0]+table('-',b[i-1]);
带有详细注释的代码可以在http://download.csdn.net/user/china8848/获得
这是一道比较经典的DP,两串基因序列包含A、C、G、T,每两个字母间的匹配都会产生一个相似值,求基因序列(字符串)匹配的最大值。
这题有点像求最长公共子序列。只不过把求最大长度改成了求最大的匹配值。用二维数组opt[i][j]记录字符串a中的前i个字符与字符串b中的前j个字符匹配所产生的最大值。假如已知AG和GT的最大匹配值,AGT和GT的最大匹配值,AG和GTT的最大匹配值,求AGT和GTT的最大匹配值,这个值是AG和GT的最大匹配值加上T 和T的匹配值,AGT和GT的最大匹配值加上T 和-的匹配值,AG和GTT的最大匹配值加上-和T的匹配值中的最大值,所以状态转移方程:
opt[i][j] = max(opt[i-1][j-1]+table(b[i-1],a[j-1]),opt[i][j-1]+table('-',a[j-1]),opt[i-1][j]+table('-',b[i-1]));
Null | A | G | T | G | A | T | G | |
Null | -3 | -5 | -6 | -8 | -11 | -12 | -14 | |
G | -2 | |||||||
T | -3 | |||||||
T | -4 | |||||||
A | -7 | |||||||
G | -9 |
opt[num2][num1]即为所求结果。
for(i=1;i<=num1;i++)
opt[0][i] = opt[0][i-1]+table('-',a[i-1]);
for(i=1;i<=num2;i++)
opt[i][0] = opt[i-1][0]+table('-',b[i-1]);
带有详细注释的代码可以在http://download.csdn.net/user/china8848/获得
相关文章推荐
- Pku acm 2406 Power Strings数据结构题目解题报告(十八)----kmp算法
- Pku acm 1953 World Cup Noise 动态规划题目解题报告(四)
- Pku acm 3356 AGTC 动态规划题目解题报告(十)
- Pku acm 1062 昂贵的聘礼 数据结构题目解题报告(七)—单源最短路径:Dijkstra算法
- Pku acm 2075 Tangled in Cables数据结构题目解题报告(十一)最小生成树:prim算法&amp;amp;二叉查找树
- Pku acm 1458 Common Subsequence 动态规划题目解题报告(五)
- Pku acm 1887 Testing the CATCHER 动态规划题目解题报告(十一)
- Pku acm 1125 Stockbroker Grapevine 动态规划题目解题报告(十九)
- Pku acm 1125 Stockbroker Grapevine 数据结构题目解题报告(八)---- 弗洛伊德(floyd)算法
- Pku acm 2250 Compromise 动态规划题目解题报告(六)
- Pku acm 2533 Longest Ordered Subsequence 动态规划题目解题报告(十二)
- Pku acm 1179 Polygon 动态规划题目解题报告(二十)
- Pku acm 1611 The Suspects数据结构题目解题报告(九)---- 并查集的应用
- Pku acm 1274 The Perfect Stall 数据结构题目解题报告(十三)---- 匈牙利算法求二分图的最大匹配
- Pku acm 1157 LITTLE SHOP OF FLOWERS 动态规划题目解题报告(十四)
- Pku acm 3253 Fence Repair 数据结构题目解题报告(一) ----哈夫曼数
- Pku acm 2492 A Bug's Life数据结构题目解题报告(十)---- 并查集的应用
- Pku acm 1466 Girls and Boys数据结构题目解题报告(十七)---- 匈牙利算法求二分图的最大匹配
- Pku acm 2075 Tangled in Cables数据结构题目解题报告(十一)最小生成树:prim算法&amp;amp;二叉查找树
- Pku acm 2406 Power Strings数据结构题目解题报告(十八)----kmp算法