4492.划分字符串

通过数:10提交数:13学校:南京邮电大学考研机试真题 题目列表 标签
题目描述 小 $A$ 有一个由 $n$ 个小写字母组成的字符串 $s$。 他希望将 $s$ 划分为若干个子串,使得子串中每个字母至多出现一次。 例如,对于字符串 street 来说, str + e + e + t 是满足条件的划分;而 s + tree + t 不是,因为子串 tree 中 e 出现了两次。 额外地,小 $A$ 还给出了价值 $a 1,a 2,…,a n$,表示划分后长度为 $i$ 的子串价值为 $a i$。 小 $A$ 希望最大化划分后得到的子串价值之和。 你能帮他求出划分后子串价值之和的最大值吗? 输入格式 第一行,一个正整数 $n$,表示字符串的长度。 第二行,一个包含 $n$ 个小写字母的字符串 $s$。 第三行,$n$ 个正整数 $a 1,a 2,…,a n$,表示不同长度的子串价值。 输出格式 一行,一个整数,表示划分后子串价值之和的最大值。 数据范围 $1 \le n \le 10^5$, $1 \le a i \le 10^9$ 输入样例1 6 street 2 1 7 4 3 3 输出样例1 13 输入样例2 8 blossoms 1 1 2 3 5 8 13 21 输出样例2 8
C
补全
点击调试按钮即可调试代码。

点击提交按钮即可提交代码。