【发布时间】:2011-11-09 10:56:31
【问题描述】:
建桥问题如下:
有一条河流水平流经一个区域。河流上方和下方有一组城市。河流上方的每个城市都与河流下方的城市相匹配,并且您将获得此匹配作为一组配对。
您有兴趣在河上建造一组桥梁以连接最多的匹配城市对,但您必须以没有两座桥梁相互交叉的方式这样做。
设计一个算法来尽可能有效地解决这个问题。
听说这个问题和longest increasing subsequence问题有关,但是这里没看到怎么用。例如,如果我们得到了对
2 5 8 10
6 4 1 2
那么我们为 LIS 考虑哪个序列?
谢谢!
【问题讨论】:
-
我认为问题并不像您可能怀疑的那样普遍……您能更详细地描述一下吗?
-
考虑一张二维地图,其中有一条水平河流穿过其中心。南岸有 n 个城市,x 坐标为 a(1) ... a(n),北岸有 n 个城市,x 坐标为 b(1) ... b(n)。您希望通过桥梁连接尽可能多的南北城市对,以使没有两座桥梁交叉。连接城市时,只能连接北岸i市和南岸i市
-
@pranay- 银行中的城市是否按 x 坐标排序?还是按随机顺序排列?
-
@templatetypedef:它们可能是随机顺序的,也可能是排序的
-
这不是说2 5 8 10是两者之间最长的吗?
标签: algorithm dynamic-programming