poj 1080
来源:互联网 发布:head first java百度云 编辑:程序博客网 时间:2024/06/06 14:43
不要打我 ,存代码
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;#define maxx 105int len1, len2, dp[maxx][maxx], s[200][200];char g1[maxx], g2[maxx];void init(){ s['A']['A'] = s['C']['C'] = s['G']['G'] = s['T']['T'] = 5; s['A']['C'] = s['C']['A'] = s['A']['T'] = s['T']['A'] = -1; s['A']['G'] = s['G']['A'] = s['C']['T'] = s['T']['C'] = -2; s['G']['T'] = s['T']['G'] = s['G']['-'] = s['-']['G'] = -2; s['A']['-'] = s['-']['A'] = s['C']['G'] = s['G']['C'] = -3; s['T']['-'] = s['-']['T'] = -1; s['C']['-'] = s['-']['C'] = -4;}int main(){ int n; init(); scanf ("%d", &n); while (n--) { memset(dp,0,sizeof(dp)); scanf ("%d%s%d%s", &len1, g1+1, &len2, g2+1); int i, j; dp[0][0] = 0; for (i = 1; i <= len2; i++) dp[0][i] = dp[0][i-1] + s['-'][g2[i]]; for (i = 1; i <= len1; i++) dp[i][0] = dp[i-1][0] + s[g1[i]]['-']; for (i = 1; i <= len1; i++) { for (j = 1; j <= len2; j++) dp[i][j] = max (dp[i-1][j-1] + s[g1[i]][g2[j]], max(dp[i][j-1] + s['-'][g2[j]], dp[i-1][j] + s[g1[i]]['-'])); } printf("%d\n",dp[len1][len2]); } return 0;}
0 0
- POJ 1080
- POJ 1080
- POJ 1080
- poj 1080
- poj 1080
- poj 1080
- poj 1080
- POJ 1080
- poj-1080
- poj 1080
- poj 1080
- POJ 1080
- poj 1080
- POJ 1080
- poj 1080
- POJ 1080 LCS扩展!
- 【DP】 POJ 1080
- POJ 1080 (DP)
- Unity3D清除控制台
- HDU 2002
- sql数据库的操作
- C#的基类、is运算符以及this
- 静态变量和实例变量的区别?
- poj 1080
- Linux命令之ifconfig - 网络配置命令
- 轮回
- 前端知识--浏览器是如何根据文本渲染的
- C#类对象的事件的定义和使用案例
- HDU 2003
- ice使用过程遇到的问题
- Hibernate 引入JAR不小心出错
- 数据库列的基本操作和约束,C#集合的学习