0分求助!!!
查看原帖
0分求助!!!
965313
youth191954楼主2024/10/3 12:39
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int mx=1e5+5;
string s; 
int n,m,a[mx],sum[mx],dp[mx],len;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	cin>>m>>s;
	for(int i=0;i<s.size();i++){
		if(s[i]<'a'||s[i]>'c')sum[i+1]=0;
		else {
			if(s[i]=='c'&&s[i-1]=='b'&&s[i-2]=='a')sum[i+1]=sum[i-2]+1,len=i+1;
		}
	}
	//for(int i=1;i<=m;i++)cout<<sum[i]<<" ";
	for(int i=1;i<=len;i++){
		for(int j=max(0,i-n);j<i;j++){
			dp[i]=max(dp[i],dp[j]+a[i-j]);
			//cout<<dp[j]<<" ";
		}
	}
	cout<<dp[sum[len]];
	return 0;
}
2024/10/3 12:39
加载中...