我的DP?
查看原帖
我的DP?
836448
stylus楼主2024/7/9 15:50
#include<bits/stdc++.h>
using namespace std;
int n,a[21],m,k,p,f[21],ans;
string s;
vector<int>v;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++){
		for(int j=i;j<=n;j++)f[j]=max(f[j],f[j-i]+a[i]);
	}cin>>m>>s;
    for(int i=0;i<m-3;i++){
        if(s.substr(i,3)=="abc")k++,i+=2,p=1;
        else if(p) v.push_back(k),k=p=0;
    }if(k&&p)v.push_back(k);
    for(int i:v)ans+=f[i];
    cout<<ans;
    return 0;
}
2024/7/9 15:50
加载中...