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 翻译。