社区讨论
90分求调
P14075[GESP202509 六级] 划分字符串参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mj8ju18b
- 此快照首次捕获于
- 2025/12/16 20:18 3 个月前
- 此快照最后确认于
- 2025/12/19 20:40 3 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
long long n,a[100001],dp[100001],see[100001];
string s;
long long sb(long long x){
long long ans=0;
for(int i=x-1;i>=1;i--){
if(s[i]==s[x]||see[i]==1){
see[x-ans]=1;
return ans;
}
ans++;
}
return ans;
}
int main() {
cin>>n>>s;
s=' '+s;
for(long long i=1;i<=n;i++)cin>>a[i];
for(long long i=1;i<=n;i++){
long long z=sb(i);
for(long long j=i-z;j<=i;j++){
dp[i]=max(dp[j-1]+a[i-j+1],dp[i]);
}
}
cout<<dp[n];
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...