#dist. 2026提高组模拟赛20-T3 序列改写

2026提高组模拟赛20-T3 序列改写

时间限制:2000ms 内存限制:512MB

项目 内容
输入文件名 dist.in
输出文件名 dist.out
可执行文件名 dist
每个测试点时限 2.0 秒
内存限制 512 MiB
测试点数目 20
是否等分

结果比较方式为全文比较(过滤行末空格及文末换行)。

题目描述

某铁路编组站的牵出线上停着一列待编组的货车,每节车厢上标有一个型号字符。当前的车序记为一个字符串 ss,调度计划要求最终编组顺序为目标字符串 tt

调车作业共有四种操作,各自的单位耗时不同:

  1. 插入:在任意位置插入一节车厢,耗时为 AA 分钟;
  2. 删除:摘下一节车厢,耗时为 BB 分钟;
  3. 替换:把一节车厢换成另一型号的车厢,耗时为 CC 分钟;
  4. 换位:交换两节相邻车厢的位置,耗时为 DD 分钟。

受牵出线长度的限制,原车序中的每一节车厢,在整个调整过程中至多参与一次「删除、替换或换位」(一次换位中的两节车厢各算参与一次;插入的车厢不受此限)。

请计算把 ss 调整成 tt 所需的最小总耗时。

输入格式

从文件 dist.in 中读入数据。

  • 第一行一个字符串 ss
  • 第二行一个字符串 tt
  • 第三行四个整数 A,B,C,DA, B, C, D

输出格式

输出到文件 dist.out 中。

输出一行一个整数,表示最小总耗时。

样例

样例 1 输入

cat
ct
3 4 6 100

样例 1 输出

4

样例 2 输入

ab
ba
100 100 10 3

样例 2 输出

3

样例 2 解释

交换相邻的 ab 两节车厢,一次换位后车序即为 ba,耗时 33 分钟。若分别把 a 换成 b、把 b 换成 a,需要 10+10=2010+10=20 分钟;先摘下一节再插入一节则需 200200 分钟。

样例 3 输入

abc
bca
10 10 10 1

样例 3 输出

20

样例 3 解释

先摘下标号为 a 的车厢,耗时 1010 分钟,车序变为 bc;再在末尾插入一节 a,耗时 1010 分钟,车序变为 bca,总耗时 2020 分钟。

若允许同一节车厢反复参与换位,可以先交换 ab11 分钟)得到 bac,再交换 ac11 分钟)得到 bca,总耗时 22 分钟;但 a 在这两步中参与了两次换位,超出了「每节车厢至多参与一次」的限制,该方案不可行。

数据范围

对于所有测试数据,保证:

  • sstt 均由小写英文字母构成;
  • 1s,t40001 \le \lvert s\rvert, \lvert t\rvert \le 4000
  • 1A,B,C,D1041 \le A, B, C, D \le 10^4

各测试点的约束如下:

测试点 s,t\lvert s\rvert, \lvert t\rvert 特殊性质
121\sim2 8\le 8
363\sim6 300\le 300
797\sim9 4000\le 4000 A
101210\sim12 B
132013\sim20
  • 特殊性质 A:D2CD \ge 2C
  • 特殊性质 B:tt 可由 ss 的所有字符重新排列得到(两串的字符多重集相同)。
难度 提高+/省选
通过率 25%
尝试 8
已通过 2
ID
713
类型
传统题
Time Limit
2000ms
Memory Limit
512MiB
上传者

相关

在下列比赛中:

暑假CSP-S模拟赛 第5场