牛客:小红的双排列删除得分
leafee 最近爱上了 abb 型语句,比如“叠词词”、“恶心心”
leafee 拿到了一个只含有小写字母的字符串,她想知道有多少个 "abb" 型的子序列?
定义: abb 型字符串满足以下条件:
字符串长度为 3 。
字符串后两位相同。
字符串前两位不同。
输入描述:
第一行一个正整数
n
n
第二行一个长度为
n
n 的字符串(只包含小写字母)
1
≤
n
≤
1
0
5
1≤n≤10
5
输出描述:
"abb" 型的子序列个数。
include
include
include
using namespace std;
using ll=long long;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr),cout.tie(nullptr);
ll n;
cin>>n;
vector
for(ll i=1;i<=2n;i++)
{
cin>>v[i];
}
vector
prefix[1]=v[1];
for(ll i=2;i<=2*n;i++)
{
prefix[i]=prefix[i-1]+v[i];
}
vector
vector
for(ll i=1;i<=2n;i++)
{
if(pos[v[i]]==0)
{
pos[v[i]]=i;
dp[i]=dp[i-1];
}
else{
dp[i]=max(dp[pos[v[i]]-1]+prefix[i]-prefix[pos[v[i]]-1],dp[i-1]);
}
}
cout<<dp[2*n];
return 0;
}

浙公网安备 33010602011771号