[GESP2025 六级] 划分字符题解
2025-12-23 21:35:57
发布于:江苏
32阅读
0回复
0点赞
看完后
点赞+加入团队
#include<bits/stdc++.h>
using namespace std;
int a[100005];
long long dp[100005];
int f[30];
int main()
{
int n;
cin >> n;
string s;
cin >> s;
s=" "+s;
for (int i=1;i<=n;i++)
{
cin >> a[i];
}
for (int i=1;i<=n;i++)
{
memset(f,0,sizeof(f));
for (int j=i;j>=1;j--)
{
if (f[s[j]-'a']) break;
dp[i]=max(dp[i],dp[j-1]+a[i-j+1]);
f[s[j]-'a']=1;
}
}
cout << dp[n];
return 0;
}
这里空空如也







有帮助,赞一个