#Z0016. 地铁通道

    ID: 1852 Type: Default File IO: metro 1000ms 256MiB Tried: 2 Accepted: 2 Difficulty: 10 Uploaded By: Tags>S组模拟赛T3动态规划

地铁通道

题目描述

一条通道被分成 nn 段,第 ii 段连接整数点 i−1i-1 和 ii。每个整数点处的高度只能是 11 或 22。设点 ii 的高度为 hih_i(0≤i≤n0\le i\le n)。

给定一个长度为 nn 的 01 串 ss,以及三个正整数 a,b,ca,b,c:

  • 若 si=1s_i=1,则第 ii 段必须满足 hi−1=hi=2h_{i-1}=h_i=2,这一段的花费为 aa。
  • 若 si=0s_i=0,则 hi−1h_{i-1} 和 hih_i 可以各自取 11 或 22。若 hi−1=hih_{i-1}=h_i,这一段花费 aa;若 hi−1≠hih_{i-1}\ne h_i,这一段是折线形通道,花费 2a2a。
  • 在每个整数点 ii(0≤i≤n0\le i\le n)处需要焊接一次。若 hi=1h_i=1,焊接花费 bb;若 hi=2h_i=2,焊接花费 cc。

求满足条件的最小总花费。

输入格式

第一行四个整数 n,a,b,cn,a,b,c,满足 1≤n≤2×1051\le n\le 2\times10^5,1≤a,b,c≤1091\le a,b,c\le 10^9。

第二行一个长度为 nn 的 01 字符串 ss。

输出格式

输出一行一个整数,表示最小总花费。

8 2 5 10
00110010
94
3 1 2 3
000
11

样例解释

样例 11:一种最优方案为

h0,h1,…,h8=1,1,2,2,2,1,2,2,1h_0,h_1,\dots,h_8 = 1,1,2,2,2,1,2,2,1

第 11 段高度不变,花费 22;第 22 段从 11 变到 22,花费 44;第 3,43,4 段为必须建在高度 22 的段,各花费 22;第 55 段从 22 变到 11,花费 44;第 66 段从 11 变到 22,花费 44;第 77 段为必须建在高度 22 的段,花费 22;第 88 段从 22 变到 11,花费 44。通道总花费 2424。焊接点在高度 11 的有 0,1,5,80,1,5,8 四个,在高度 22 的有 2,3,4,6,72,3,4,6,7 五个,焊接费用 4b+5c=20+50=704b+5c=20+50=70。总花费 24+70=9424+70=94。

样例 22:三段全为 00。全部建在高度 11 时花费 3a+4b=3+8=113a+4b=3+8=11;全部建在高度 22 时花费 3a+4c=3+12=153a+4c=3+12=15。最小值为 1111。

数据范围与约定

子任务 分值 限制
11 3030 n≤20n \le 20
22 所有 si=0s_i=0
33 4040 1≤n≤2×1051 \le n \le 2\times10^5,1≤a,b,c≤1091 \le a,b,c \le 10^9

下发样例

下发样例下载