zoukankan      html  css  js  c++  java
  • POJ1080

    跟最长公共子序列很像

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <string.h>
     4 using namespace std;
     5 char a[105],b[105];
     6 int dp[105][105];
     7 char s[8]="ACGT-";
     8 int score[5][5]={
     9     { 5, -1, -2, -1, -3 },
    10     { -1, 5, -3, -2, -4 },
    11     { -2, -3, 5, -2, -2 },
    12     { -1, -2, -2, 5, -1 },
    13     { -3, -4, -2, -1, 0 }
    14 };
    15 int getn(char c){
    16     for(int i=0;i<5;i++){
    17         if(s[i]==c)return i;
    18     }
    19 }
    20 int main(){
    21     int t,x,y;
    22     scanf("%d",&t);
    23     while(t--){
    24         scanf("%d",&x);
    25         scanf("%s",a+1);
    26         scanf("%d",&y);
    27         scanf("%s",b+1);
    28         dp[0][0]=0;
    29         for(int i=1;i<=x;i++)dp[i][0]=score[getn(a[i])][4]+dp[i-1][0];
    30         for(int i=1;i<=y;i++)dp[0][i]=score[4][getn(b[i])]+dp[0][i-1];
    31         for(int i=1;i<=x;i++){
    32             for(int j=1;j<=y;j++){
    33                 int temp1=dp[i-1][j-1]+score[getn(a[i])][getn(b[j])];                //相当于LCS的a[i]=b[j];
    34 
    35                 int temp2=dp[i][j-1]+score[4][getn(b[j])];                            //相当于    a[i]    '-'        匹配
    36                                                                                     //            b[j-1]    b[j]
    37 
    38                 int temp3=dp[i-1][j]+score[getn(a[i])][4];                            //相当于    a[i-1]    a[i]    匹配
    39                                                                                     //            b[jj]    '-'
    40                 dp[i][j]=max(temp1,max(temp2,temp3));
    41             }
    42         }
    43         printf("%d
    ",dp[x][y]);
    44     }
    45     return 0;
    46 }
  • 相关阅读:
    [codevs]失恋28天题目系列
    [NOIP1998]最大数
    [codevs4247]奇特的生物
    [codevs1380]没有上司的舞会
    [codevs2152]滑雪
    [codevs2171]棋盘覆盖
    [codevs2170]悠闲的漫步
    [codevs1557]热浪
    [codevs1554]最佳课题选择
    nodejs建站+github page 建站问题总结
  • 原文地址:https://www.cnblogs.com/Mr-Xu-JH/p/4338443.html
Copyright © 2011-2022 走看看