编程题
### 问题描述 蓝桥小学又开始施工啦~ 这次他们打算重建所有的宿舍楼,因此需要先把宿舍楼全部摧毁。 已知蓝桥小学有 $n$ 栋排成一排的宿舍,编号为 $1$ 到 $n$,第 $i$ 栋宿舍的高度为 $h_i$,共有两种摧毁宿舍的方法:**(注:摧毁后的宿舍高度为 $0$)** $1.$ 花费 $X$ 元摧毁任意一栋宿舍。 $2.$ 选择一段区间 $[l,r]$($l0,h_r>0$),如果满足 $(l , r ]$ 区间内只有 $r$ 宿舍的高度大于等于 $l$ 宿舍的高度,则可以花费 $Y$ 元摧毁 $[l, r]$ 区间的所有宿舍($[l,r]$ 中可以包含已被摧毁的宿舍)。 现在给出所有宿舍楼的高度和 $X,Y$,你能算出摧毁所有宿舍楼的最小预算吗? ### 输入格式 输入第 $1$ 行包含一个正整数 $T$,表示有 $T$ 组测试数据。 每组测试数据的第 $1$ 行包含三个整数 $n,X,Y$,分别表示宿舍数和两种摧毁方法的花费。 每组测试数据的第 $2$ 行包含 $n$ 个整数,其中第 $i$ 个整数 $h_i$ 表示编号为 $i$ 的宿舍的高度。 **题目保证 $T$ 组测试数据的宿舍数 $n$ 之和不大于 $500$!** ### 输出格式 对于每组测试数据,输出一行,这一行包含一个整数,表示摧毁所有宿舍楼的最小花费。 ### 样例输入 ``` 3 5 5 7 2 1 3 1 5 5 10 10 10 8 5 10 1 1 1 5 10 ``` ### 样例输出 ``` 12 20 1 ``` ### 说明/提示 对于所有测试数据,$1\leq T\leq 20,1\leq n\leq 500,1\leq X,Y\leq 10^5,1\leq h_i\leq 10^9$。 样例中,先花费 $5$ 元摧毁 $3$ 号宿舍,宿舍楼的高度变为 $2\ 1 \ 0\ 1\ 5$,再花费 $7$ 元摧毁 $[1,5]$ 区间。
查看答案
赣ICP备20007335号-2