P1140 20分,求捞
  • 板块灌水区
  • 楼主oi_mmmmm
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/4/13 15:30
  • 上次更新2024/4/13 16:58:46
查看原帖
P1140 20分,求捞
749818
oi_mmmmm楼主2024/4/13 15:30
#include<bits/stdc++.h>
using namespace std;
int n,m,dp[1145][1145],k,x,y,a[1145],b[1145];char z;
int o(char h){
	if(h=='A') return 1;
	if(h=='C') return 2;
	if(h=='G') return 3;
	if(h=='T') return 4;
}
int d[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,5}
			};
int main(){
	cin>>m;
	for(int i=1;i<=m;i++){
		cin>>z;
		a[i]=o(z);
	}
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>z;
		b[i]=o(z);
	} 
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			dp[i][j]=max(dp[i-1][j-1]+d[a[i]][b[j]],max(dp[i-1][j]+d[a[i]][5],dp[i][j-1]+d[5][b[j]]));		
		}
	}
	cout<<dp[m][n];
	return 0;
}

[1145],k,x,y,a[1145],b[1145];char z; int o(char h){ if(h=='A') return 1; if(h=='C') return 2; if(h=='G') return 3; if(h=='T') return 4; } int d[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,5} }; int main(){ cin>>m; for(int i=1;i<=m;i++){ cin>>z; a[i]=o(z); } cin>>n; for(int i=1;i<=n;i++){ cin>>z; b[i]=o(z); } for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ dp[i][j]=max(dp[i-1][j-1]+d[a[i]][b[j]],max(dp[i-1][j]+d[a[i]][5],dp[i][j-1]+d[5][b[j]])); } } cout<<dp[m][n]; return 0; }

2024/4/13 15:30
加载中...