Pku acm 1080 Humman Gene Function 动态规划题目解题报告(八)
来源:互联网 发布:tango软件好不好 编辑:程序博客网 时间:2024/05/21 11:05
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]));
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
第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/获得
- Pku acm 1080 Humman Gene Function 动态规划题目解题报告(八)
- Pku 1080 Humman Gene Function 解题分析
- Pku 1080 Humman Gene Function 解题分析
- Pku 1080 Humman Gene Function
- Pku acm 1579 Function Run Fun 动态规划题目解题报告(二)
- Pku acm 2250 Compromise 动态规划题目解题报告(六)
- Pku acm 1159 Palindrome 动态规划题目解题报告(七)
- Pku acm 2192 Zipper 动态规划题目解题报告(九)
- Pku acm 3356 AGTC 动态规划题目解题报告(十)
- Pku acm 1088 滑雪 动态规划题目解题报告(十五)
- Pku acm 1014 Dividing 动态规划题目解题报告(十七)
- POJ 1080 Humman Gene Function
- Pku acm 1163 the Triangle 动态规划题目解题报告(一)
- Pku acm 2081 Recaman's Sequence 动态规划题目解题报告(三)
- Pku acm 1953 World Cup Noise 动态规划题目解题报告(四)
- Pku acm 1458 Common Subsequence 动态规划题目解题报告(五)
- Pku acm 1887 Testing the CATCHER 动态规划题目解题报告(十一)
- Pku acm 2533 Longest Ordered Subsequence 动态规划题目解题报告(十二)
- 元旦寄语-to me
- 个人对Linux下的QQ聊天工具的总结
- 计时和倒计时
- C#播放器
- 软件添加背景音乐
- Pku acm 1080 Humman Gene Function 动态规划题目解题报告(八)
- dlmalloc源码剖析之:mALLOc
- Swing之JTable的详细介绍--基础篇
- 多网卡发送数据包
- Linux路由表的结构与算法分析
- socket编程原理
- 修改matlab的默认目录
- JavaScript脚本执行的多线程问题
- 揭开socket的面纱