题库练习 变换(change)

A71643 | 变换(change)

来源编程题
时间限制1s
内存限制512MB
通过 / 提交0/0

题目描述

游园会有有一个项目叫做变换,这个项目的规则如下:

现在有 ST 两个长度相同的序列,都是由 01 构成。

我们想要把 S 序列变成 T 序列,每次变换我们可以把一个 0 变成 1,或者把一个 1 变成 0,第 i 个数改变一次所需要的代价是 Ci \times DCi 是题目给出的,跟位置 i 有关,即我们变换第 i 个数的时候使用,D 是当前 ST 里面不匹配的数字的数量。

显然,不同的变换顺序的代价是不一样的。我们希望求出这个最小的变换代价。

输入格式

输入的第一行是一个整数 n,表示序列的长度。

接下来一行有一个长度为 n 的序列,表示 S 序列,中间有一个空格隔开。

接下来一行有一个长度为 n 的序列,表示 T 序列,中间有一个空格隔开。

接下来一行有 n 个整数,表示 Ci,整数用一个空格隔开。

输出格式

输出最小的变换代价。

输入输出样例

输入 #1
3
1 0 1
1 0 1
1 2 3
输出 #1
0
输入 #2
3
1 0 1
0 1 0
1 2 3
输出 #2
10
C++ 编辑器
输入
输出