【发布时间】:2015-05-25 08:30:24
【问题描述】:
给定 2 个长度相同的字符串 A 和 B。A 包含 '0'、'1' 和 '?'; B 仅包含“0”和“1”。我们需要通过对字符串 A 执行一系列允许的操作来找到将 A 转换为 B 的最小成本。
允许以下操作:
- 用成本 x 将“0”更改为“1”
- 将“1”更改为“0”,成本为 y
- 更改“?”成本为 z 的“0”或“1”
- 用成本 t 交换两个相邻的字符。
我们需要找到最低成本。
示例:令 N=6 , x=1 , y=1000 , z=1 , t=1 , A=01??00 和 B=001010 则答案为 4。
如何使用动态规划解决这个问题?有什么可以复发的吗?请帮忙
【问题讨论】:
-
预期的时间复杂度(或约束条件)是多少?
-
@kraskevich 1 ≤ N ≤ 2000 和 1 ≤ x, y, z, t ≤ 1000 。 z ≤ min(x, y) 所以 O(N^2) 也可以工作
标签: string algorithm recursion dynamic-programming