#dist. 2026提高组模拟赛20-T3 序列改写
2026提高组模拟赛20-T3 序列改写
时间限制:2000ms 内存限制:512MB
| 项目 | 内容 |
|---|---|
| 输入文件名 | dist.in |
| 输出文件名 | dist.out |
| 可执行文件名 | dist |
| 每个测试点时限 | 2.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
某铁路编组站的牵出线上停着一列待编组的货车,每节车厢上标有一个型号字符。当前的车序记为一个字符串 ,调度计划要求最终编组顺序为目标字符串 。
调车作业共有四种操作,各自的单位耗时不同:
- 插入:在任意位置插入一节车厢,耗时为 分钟;
- 删除:摘下一节车厢,耗时为 分钟;
- 替换:把一节车厢换成另一型号的车厢,耗时为 分钟;
- 换位:交换两节相邻车厢的位置,耗时为 分钟。
受牵出线长度的限制,原车序中的每一节车厢,在整个调整过程中至多参与一次「删除、替换或换位」(一次换位中的两节车厢各算参与一次;插入的车厢不受此限)。
请计算把 调整成 所需的最小总耗时。
输入格式
从文件 dist.in 中读入数据。
- 第一行一个字符串 ;
- 第二行一个字符串 ;
- 第三行四个整数 。
输出格式
输出到文件 dist.out 中。
输出一行一个整数,表示最小总耗时。
样例
样例 1 输入
cat
ct
3 4 6 100
样例 1 输出
4
样例 2 输入
ab
ba
100 100 10 3
样例 2 输出
3
样例 2 解释
交换相邻的 a、b 两节车厢,一次换位后车序即为 ba,耗时 分钟。若分别把 a 换成 b、把 b 换成 a,需要 分钟;先摘下一节再插入一节则需 分钟。
样例 3 输入
abc
bca
10 10 10 1
样例 3 输出
20
样例 3 解释
先摘下标号为 a 的车厢,耗时 分钟,车序变为 bc;再在末尾插入一节 a,耗时 分钟,车序变为 bca,总耗时 分钟。
若允许同一节车厢反复参与换位,可以先交换 a、b( 分钟)得到 bac,再交换 a、c( 分钟)得到 bca,总耗时 分钟;但 a 在这两步中参与了两次换位,超出了「每节车厢至多参与一次」的限制,该方案不可行。
数据范围
对于所有测试数据,保证:
- 、 均由小写英文字母构成;
- ;
- 。
各测试点的约束如下:
| 测试点 | 特殊性质 | |
|---|---|---|
| 无 | ||
| A | ||
| B | ||
| 无 |
- 特殊性质 A:。
- 特殊性质 B: 可由 的所有字符重新排列得到(两串的字符多重集相同)。
难度
提高+/省选
通过率
25%
尝试
8
已通过
2
- ID
- 713
- 类型
- 传统题
- Time Limit
- 2000ms
- Memory Limit
- 512MiB
- 上传者
相关
在下列比赛中: