CSPSMK12D. string(string)

提交1 通过1
通过率100%
文件IO启用
输入文件string.in
输出文件string.out
时间限制1000ms
内存限制256MiB
    ID: 14622 传统题 文件IO 输入文件:string.in 输出文件:string.out 1000ms 256MiB 尝试: 1 已通过: 1 难度: 提高+/省选- 上传者: 标签>状压 DP深度优先搜索

题目描述

题目背景

题目描述

给定长度为 nn 的字符串 S,TS,T 和定值 cc,你可以任意调用以下两个函数若干次:

void update1(int u,char x){
	S[u]=x;
}
void update2(char x,char y){
	for(int i=1;i<=n;i++) if(S[i]==x) S[i]=y;
}

其中调用 update1\text{update1} 函数的单次代价为 11,调用 update2\text{update2} 函数的单次代价为 cc。

请你输出将 SS 修改为 TT 的最小总代价。

输入格式

第一行包含 22 个正整数 n,cn,c​。

第二行包含一个长度为 nn 的小写字母构成的字符串 SS。

第三行包含一个长度为 nn 的小写字母构成的字符串 TT。

输出格式

输出一行,输出 11 个整数,表示最终答案。

输入样例

8 2
babababa
aaaaaaab

输出样例

3

说明提示

样例解释

最优操作为先执行 update2(b,a)\text{update2(b,a)},再执行 update1(8,b)\text{update1(8,b)},总代价为 33。

对于 20%20\% 的数据,1≤n≤101 \leq n \leq 10。

对于另外 20%20\% 的数据,字符串中只包含字母 a,b,c,d,ea,b,c,d,e。

对于所有测评数据,1≤n,c≤1061 \leq n,c \leq 10^6。


本站补充:原套别:第 12 套 D 题。