首页的大佬看过来,救救孩子吧
  • 板块P1140 相似基因
  • 楼主convie
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/1/16 20:31
  • 上次更新2025/1/17 09:46:59
查看原帖
首页的大佬看过来,救救孩子吧
1503208
convie楼主2025/1/16 20:31

求调呀,找不到哪错了

#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
#define MAXN 10010
int a[MAXN];
int b[MAXN];
int w[][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
};
int n,m;
int dp[MAXN][MAXN];
int main(){
	char c;
	cin>>n;
	for(int i=1;i<=n;i++){
		scanf(" %c",&c);
		if(c=='A')a[i]=1;
		if(c=='C')a[i]=2;
		if(c=='G')a[i]=3;
		if(c=='T')a[i]=4;
	}
	cin>>m;
	for(int i=1;i<=m;i++){
		scanf(" %c",&c);
		if(c=='A')b[i]=1;
		if(c=='C')b[i]=2;
		if(c=='G')b[i]=3;
		if(c=='T')b[i]=4;
	}
	for(int i=1;i<=n;i++)dp[i][0]=dp[i-1][0]+w[a[i]][5];
	for(int i=1;i<=m;i++)dp[0][i]=dp[0][i-1]+w[5][b[i]];
	for(int i=1;i<=n;i++)
	for(int j=1;j<=m;j++){
		dp[i][j]=max(dp[i][j],dp[i-1][j-1]+w[a[i]][b[j]]);
		dp[i][j]=max(dp[i-1][j]+w[a[i]][5],dp[i][j]);
		dp[i][j]=max(dp[i][j-1]+w[5][b[j]],dp[i][j]);
}
	cout<<dp[n][m];
	return 0;
}

救救孩子吧Orz

2025/1/16 20:31
加载中...