AT_arc211_c [ARC211C] Forest
题目描述
给定一个正整数 $N$,一个长度为 $N$ 的只由 `#` 和 `.` 组成的字符串 $S$,以及一个长度为 $N$ 的正整数序列 $R=(R_1,R_2,\dots,R_N)$。
有一个由 $N$ 个区域组成的森林,这些区域从左到右按 $1,2,\dots,N$ 排列。
有些区域长有树。具体地说,当且仅当 $S$ 的第 $i$ 个字符是 `#` 时,第 $i$ 区域有树。保证下述操作至少可以进行一次。
你可以重复进行如下操作任意次:
- 选取两个没有树的区域。设从左到右选中的区域编号为 $i$ 和 $j$($i < j$)。那么区间 $i$ 到 $j$ 之间所有有树的区域的树都会被移除,并获得奖励 $R_i+R_j$。
注意,不能进行不会移除任何树的操作。
请你求出能使总奖励最大化的方案中,**第一次操作**可以有多少种选择方法。若两个选择方案中存在至少一个区域编号某一个被选中,另一个没被选中,则认为两种方案不同。
输入格式
输入格式如下:
> $N$ $S$ $R_1$ $R_2$ $\dots$ $R_N$
输出格式
输出答案。
说明/提示
### 样例解释 1
共存在 6 种第一次操作方式如下:
- 选择区域 $1$ 和 $7$,移除区域 $4,5,6$ 的树,获得奖励 $21$。
- 选择区域 $1$ 和 $8$,移除区域 $4,5,6$ 的树,获得奖励 $21$。
- 选择区域 $2$ 和 $7$,移除区域 $4,5,6$ 的树,获得奖励 $26$。
- 选择区域 $2$ 和 $8$,移除区域 $4,5,6$ 的树,获得奖励 $26$。
- 选择区域 $3$ 和 $7$,移除区域 $4,5,6$ 的树,获得奖励 $2$。
- 选择区域 $3$ 和 $8$,移除区域 $4,5,6$ 的树,获得奖励 $2$。
无论选择哪一种操作,所有的树都会被移除,因此无法进行第二次操作。最大总奖励为 $26$。
### 样例解释 2
最大总奖励为 $825$。
注意目标不是最大化第一次操作获得的奖励。如果一开始选择区域 $1$ 和 $5$,可以获得 $422$ 的奖励,但之后不能再进行任何操作,因此总奖励不能达到 $825$。
### 约束条件
- $3\leq N\leq 2\times 10^5$
- $S$ 的长度为 $N$,且每个字符都是 `#` 或 `.`。
- $1\leq R_i\leq 10^9$,$1\leq i\leq N$
- 至少可以进行一次操作。
- $N$ 和 $R_i$ 都为整数。
由 ChatGPT 5 翻译