LLppdd likes strings

LLppdd's likes strings!

Time Limit: 1 s Memory Limit: 256 MB

题目背景

LLppdd 由于实在是太弱了,在 \(ION 2018\) 模拟十连测中成功获得了多次零分......
由于考试的时候太无聊了,他就把这些 \(0\) 串成了一个字符串。
然后 LLppdd 又发现全是 \(0\) 的串 \(0000000...000\) 不够优美,于是他在中间随机加了几个数字 \(1\) (比如 \(01110101001...010110\))。
最后,他突发奇想!要不我们把他们全部变成 \(1\)?

题目描述

LLppdd 会两种操作:
操作1:选择一段连续的数,将他们的顺序变成逆序。 \((1 \underline{001} 1 \rightarrow 1 \underline{100} 1)\)
操作2:选择一段连续的数,将他们全部取反。 \((0 变成 1, 1 变成 0)\)\((1 \underline{001} 1 \rightarrow 1 \underline{110} 1)\)
当然,每种操作都要他对应的花费,我们假设操作一的花费为 \(x\), 操作二的花费为 \(y\)。他想知道将整个字符串变成全 \(1\) 串的最小花费是多少?


输入格式

输入一共有两行:

第一行三个正整数 \(n, x, y\),分别表示选择接下来输入的字符串的长度,操作一的花费,操作二的花费。

第二行是一个长度为 \(n\)\(01\) 串。

输出格式

输出一共一行:

将原字符串改成全 \(1\) 串的最小花费。

输出样例1

3 1 2
000

输出样例1

2

输入样例2

5 1 10
01000

输出样例2

11

数据范围

\(30\%\)的数据保证\(1≤n≤3\)
\(50\%\)的数据保证\(1≤n≤10\)
\(80\%\)的数据保证\(1≤n≤500\)
\(100\%\)的数据保证\(1≤n≤10000\)

HINT

对于样例一,花 \(2\) 元将整个字符串进行取反就可以了。
对于样例二的具体操作如下:
$ «01000» → «10000» → «11111» $ 总共花费为 \(1+10=11\) 元。

posted @ 2018-07-20 15:17  沛霖  阅读(189)  评论(1编辑  收藏  举报