题库/Y1255

#Y1255. 鏖战字符串

    传统题 难度: 提高 标签>一本通单调斜率单调查询凸包优化单调队列优化DP
时间限制1000 ms
内存限制128 MiB
通过率—0 / 0 次提交
题目描述 查看题解 开始编程Alt+E

Y1255 · 鏖战字符串

退出在线编程模式
提高 读懂题意,让每一次思考成为成长。
时间限制1000 ms
内存限制128 MiB
通过率—0 / 0 次提交

题目描述

有一天,Abwad决定和nbc鏖战字符串,比的是谁能更快地将一个“量子态的字符串”删除。“量子态的字符串”的每个字符都有一个删除难度dif[i]dif[i]。“量子态的字符串”非常顽固,只能先分割成若干个子串,然后再通过以下两种方式删除: ① 假设子串的所有字符的删除难度之和为xx,消耗a×x2+ba×x^2+b的时间可将子串扔进回收站。 ② 若子串中出现次数最多的字符出现的次数不少于ll次且不多于rr次,那么采用“量子态的py自动机”算法可以消耗c×x+dc×x+d的时间将子串扔进回收站。 Abwad希望你求出删去每个前缀[1,i]1,i]的最少用时。

输入

第一行七个整数n,a,b,c,d,l,rn,a,b,c,d,l,r,其中nn表示字符串的长度。 第二行一行一个长度为nn的字符串。 第三行一行nn个整数,表示每个字符的删除难度dif[i]dif[i]。

输出

nn行,每行一个整数ansans,表示删去前缀[1,i][1,i]最短的时间。

输入样例

5 1 3 1 5 1 1
abwad
1 1 1 1 1

输出样例

4
7
8
12
13

提示

【样例解释】 以前缀[1,n][1,n]为例,将串分为a、bwada、bwad两个子串,用方法①删去第一个子串,用方法②删去第二个子串,用时1×1+3+1×4+5=131×1+3+1×4+5=13 【数据规模与约定】

测试点编号n特殊约定
1n≤10所有的字母都是a
2所有的字母都是a或b
3
4
5n≤2000所有的字母都是a
6所有的字母都是a或b
7l=1,r=n
8
9
10
11n≤100000l=1,r=n
12
13
14
15l>r
16
17
18
19
20
对于所有的数据,满足$n≤100000,1≤a,b,c,d≤233,1≤l,r≤n,0≤dif[i]≤50$,所有字符由小写字母组成。

评测数据说明

本题使用按题意独立构造、以独立程序核对的训练数据及公开样例,共5个测试点,非原站或官方原始数据。总分100分。