博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 1080 Human Gene Functions (DP) by kuangbin
阅读量:5754 次
发布时间:2019-06-18

本文共 1288 字,大约阅读时间需要 4 分钟。

题目链接:

#include
#include
using namespace std; int dp[110][110]; int Maxtri[5][5]= { {
0,-3,-4,-2,-1}, {-3,5,-1,-2,-1}, {-4,-1,5,-3,-2}, {-2,-2,-3,5,-2}, {-1,-1,-2,-2,5} }; int num1[110]; int num2[110]; int main() {
// freopen("test.in","r",stdin); // freopen("test.out","w",stdout); int T; int n,m; char ch; scanf("%d",&T); while(T--) {
scanf("%d",&n); getchar(); for(int i=1;i<=n;i++) {
scanf("%c",&ch); if(ch=='A') num1[i]=1; else if(ch=='C') num1[i]=2; else if(ch=='G') num1[i]=3; else if(ch=='T') num1[i]=4; } scanf("%d",&m); getchar(); for(int i=1;i<=m;i++) {
scanf("%c",&ch); if(ch=='A') num2[i]=1; else if(ch=='C') num2[i]=2; else if(ch=='G') num2[i]=3; else if(ch=='T') num2[i]=4; } dp[0][0]=0; for(int i=1;i<=n;i++) dp[i][0]=dp[i-1][0]+Maxtri[num1[i]][0]; for(int i=1;i<=m;i++) dp[0][i]=dp[0][i-1]+Maxtri[0][num2[i]]; for(int i=1;i<=n;i++) {
for(int j=1;j<=m;j++) {
dp[i][j]=max(dp[i-1][j-1]+Maxtri[num1[i]][num2[j]],max(dp[i-1][j]+Maxtri[num1[i]][0],dp[i][j-1]+Maxtri[0][num2[j]])); } } printf("%d\n",dp[n][m]); } }

 

转载地址:http://qpckx.baihongyu.com/

你可能感兴趣的文章
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>
纯DIV+CSS简单实现Tab选项卡左右切换效果
查看>>
栈(一)
查看>>
ios 自定义delegate(一)
查看>>
创建美国地区的appleId
查看>>
例题10-2 UVa12169 Disgruntled Judge(拓展欧几里德)
查看>>
JS 原生ajax写法
查看>>
Composer管理PHP依赖关系
查看>>
React.js学习笔记之JSX解读
查看>>
我所了解的Libevent和SEDA架构
查看>>
Socket编程问题小记
查看>>
基于Flask-Angular的项目组网架构与部署
查看>>
一张图道尽程序员的出路
查看>>
redis 常用命令
查看>>
LVS+Keepalived高可用负载均衡集群架构
查看>>
烂泥:kvm安装windows系统蓝屏
查看>>
iPhone开发面试题--葵花宝典
查看>>
EdbMails Convert EDB to PST
查看>>
POJ 2184
查看>>
大话 程序猿 眼里的 接口
查看>>