40分求助
查看原帖
40分求助
233815
zhjzhmh楼主2021/5/23 15:28
#include<bits/stdc++.h>
using namespace std;
int b[150],len1,len2,f[110][110];
string st1,st2;
int main()
{
	b['A']=1;b['C']=2;b['G']=3;b['T']=4;b[' ']=5;
	int a[10][10]={{},{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}};
	cin>>len1>>st1>>len2>>st2;
	if(len2>len1) swap(len2,len1),swap(st1,st2);
	f[0][0]=a[b[st1[0]]][b[st2[0]]];
	f[0][1]=a[b[st1[0]]][b[' ']];
	for(int i=2;i<=len1-len2;i++) f[0][i]=0x8f8f8f8f;
	for(int i=1;i<=len1-1;i++)
	{
		f[i][0]=f[i-1][0]+a[b[st1[i]]][b[st2[i]]];
		for(int j=1;j<=len1-len2;j++)
	      f[i][j]=max(f[i-1][j]+a[b[st1[i]]][b[st2[i-j]]],f[i-1][j-1]+a[b[st1[i]]][b[' ']]);
	}
	cout<<f[len1-1][len1-len2];
}

错2 3 7 8 9 10 6个点

2021/5/23 15:28
加载中...