AT_abc464_d [ABC464D] Celester
题目描述
给你一个长度为 $N$ 的字符串 $S$,表示未来 $N$ 天的天气。
$S$ 的第 $i$ 个字符为 `S` 表示第 $i$ 天是晴天,为 `R` 表示第 $i$ 天是雨天。
另外,当前的幸福值为 $0$。
你可以进行以下操作**任意次**(包括零次):
- 选择一个整数 $i$($1 \le i \le N$)。
- 如果第 $i$ 天的天气是晴天,则将其改为雨天;如果是雨天,则改为晴天。
- 但是,如果更改了第 $i$ 天的天气,幸福值会**减少** $X_i$。
在操作结束后的最终天气中,会按以下条件**增加**幸福值:
- 对于所有满足 $1 \le i \le N-1$ 的整数 $i$,如果变化后的第 $i$ 天是雨天,**并且**第 $i+1$ 天是晴天,则幸福值增加 $Y_i$。
请找出通过操作能够达到的**最大幸福值**。
给定 $T$ 个测试用例,请分别求出每个测试用例的答案。
输入格式
输入以以下格式从标准输入给出。其中 $\mathrm{case}_i$ 表示第 $i$ 个测试用例。
> $T$
>
> $\mathrm{case}_1$
>
> $\mathrm{case}_2$
>
> $\vdots$
>
> $\mathrm{case}_T$
每个测试用例的格式如下:
> $N$
>
> $S$
>
> $X_1$ $X_2$ $\dots$ $X_N$
>
> $Y_1$ $Y_2$ $\dots$ $Y_{N-1}$
输出格式
输出 $T$ 行。第 $i$ 行应输出第 $i$ 个测试用例的答案。
说明/提示
#### 样例解释 1
此输入包含 $5$ 个测试用例。
对于第 $1$ 个测试用例,例如可以进行如下操作来最大化幸福值:
- 将第 $3$ 天的天气从雨天改为晴天。幸福值减少 $X_3 = 4$,天气变为:晴、雨、晴、雨、晴、雨。
- 操作后,第 $2$ 天为雨且第 $3$ 天为晴,幸福值增加 $Y_2 = 6$;第 $4$ 天为雨且第 $5$ 天为晴,幸福值增加 $Y_4 = 3$。
- 总幸福值为 $(-4) + 6 + 3 = 5$,这是可达到的最大值。
对于第 $2,3$ 个测试用例,有时不进行任何操作是最优的。
对于第 $5$ 个测试用例,请注意答案可能超出 $32$ 位整数范围。
---
### 约束条件
- $1 \le T \le 10^4$
- $N$ 是满足 $2 \le N \le 2 \times 10^5$ 的整数
- $S$ 是长度为 $N$ 的、由 `S` 和 `R` 组成的字符串
- $X_i$ 是满足 $1 \le X_i \le 10^9$ 的整数
- $Y_i$ 是满足 $1 \le Y_i \le 10^9$ 的整数
- 单个输入中所有测试用例的 $N$ 的总和不超过 $2 \times 10^5$
---
由 DeepSeek 翻译。