社区讨论

Why 60pts?

P1140相似基因参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m1j02f5b
此快照首次捕获于
2024/09/26 15:56
去年
此快照最后确认于
2024/09/26 16:05
去年
查看原帖
rt,有4个点WA了
CPP
#include <bits/stdc++.h>
using namespace std;
int n,m;
string s1,s2;
int dp[105][105];
int a1[105],a2[105];
int mp[6][6];
int main(){
	for (int i=1;i<=5;i++){
		mp[i][i]=5;
	}
	for (int i=2;i<5;i+=2){
		mp[i][1]=-1;
		mp[1][i]=-1;
	}
	mp[5][4]=-1;
	mp[4][5]=-1;
	mp[1][3]=-2;
	mp[3][1]=-2;
	mp[2][4]=-2;
	mp[4][2]=-2;
	mp[3][4]=-2;
	mp[4][3]=-2;
	mp[3][5]=-2;
	mp[5][3]=-2;
	mp[5][1]=-3;
	mp[1][5]=-3;
	mp[2][3]=-3;
	mp[3][2]=-3;
	mp[2][5]=-4;
	mp[5][2]=-4;
	cin>>n>>s1>>m>>s2;
	s1=' '+s1;
	s2=' '+s2;
	for (int i=1;i<=n;i++){
		if (s1[i]=='A') a1[i]=1;
		if (s1[i]=='C') a1[i]=2;
		if (s1[i]=='G') a1[i]=3;
		if (s1[i]=='T') a1[i]=4;
	}
	for (int i=1;i<=m;i++){
		if (s2[i]=='A') a2[i]=1;
		if (s2[i]=='C') a2[i]=2;
		if (s2[i]=='G') a2[i]=3;
		if (s2[i]=='T') a2[i]=4;
	}
	memset(dp,-2147483648,sizeof(dp));
	for (int i=1;i<=n;i++){
		dp[i][0]=dp[i-1][0]+mp[a1[i]][5];
	}
	for (int i=1;i<=m;i++){
		dp[0][i]=dp[0][i-1]+mp[5][a2[i]];
	}
	for (int i=1;i<=n;i++){
		for (int j=1;j<=m;j++){
			dp[i][j]=dp[i-1][j-1]+mp[a1[i]][a2[j]];
			dp[i][j]=max(dp[i][j],max(dp[i-1][j]+mp[a1[i]][5],dp[i][j-1]+mp[5][a2[i]]));
		}
	}
	cout<<dp[n][m]<<endl;
	return 0;
} 

回复

0 条回复,欢迎继续交流。

正在加载回复...