求助,回复必关
查看原帖
求助,回复必关
305735
Jean_Gunnhildr楼主2024/11/18 16:39
#include<bits/stdc++.h>
using namespace std;

int n,m;
string a,b;
int mm[205];
int tab[6][6]={
    0,0,0,0,0,0,
    0,5,-1,-2,-1,-3,
    0,-1,5,-3,-2,-4,
    0,-2,-3,5,-2,-2,
    0,-1,-2,-2,5,-1,
    0,-3,-4,-2,-1,0
};
//A 1  C 2 G 3 T 4 - 5
int dp[105][105];

int main(){
    ios::sync_with_stdio(false),cin.tie(0),cin.tie(0);
    mm['A']=1;
    mm['G']=2;
    mm['C']=3;
    mm['T']=4;
    cin>>n>>a>>m>>b;
    a=" "+a;
    b=" "+b;
    dp[0][0]=0;
    for(int i=1;i<=n;i++) dp[i][0]=dp[i-1][0]+tab[ mm[ a[i] ] ][5];
    for(int i=1;i<=m;i++) dp[0][i]=dp[0][i-1]+tab[  5 ][ mm[b[i]] ];
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            dp[i][j]=max( max( dp[i-1][j-1]+tab[ mm[a[i]] ][ mm[b[j]] ] , dp[i-1][j]+tab[mm[a[i]]][ 5 ] ) , dp[i][j-1]+tab[5][ mm[b[j]] ] );
        }
    }
    cout<<dp[n][m]<<endl;
    return 0;
}
/*
99 AATGCCTATAGGCGTTCTGGGATTTCGTTCTTGGTAAAGGCATCACCTATGCCTAGCTCTCGACACCCCCTTCGCCCAGGGTTGTAAGTTACTATAGTA
100 ATCATGAGAAAGTAGAATGATGTGCCGGATCTGGCGACCTAATCCATAGGCAACGGGGTCATGGGAGTCCTGCCAGGCTTCATTGTCCTTGTACGCGTAT
181
*/

2024/11/18 16:39
加载中...