区间树判定算法
夜雨_倚琴 2010-11-25 11:35:21 1 单个变量的情况,比如:(A为整数)
A[1, 10], A[2, 27], A[1, 5], A[16, 25] ....
有N条这样的区间,每个区间表示变量A可以在该区间内取值。
求:[X, Y]是否被某一区间所包含?(只要判断是否即可)
比如按照上面的例子,[4, 4]被某一区间包含, [12, 14]不被任何区间包含。
考虑到N很大,所以要求找到O(lgN)的算法,根据《算法导论》里面的讲解,可以构建一个区间树(红黑树的变形),来进行求解。
2 但如果扩展一下,变成多个变量的情况,如:
A[1, 10]&&B[3, 6], A[2, 27]&&B[4, 7], A[1, 5]&&B[6, 11] ...
解释一下A[1, 10]&&B[3, 6]这个区间表示含义是,A在[1, 10]取值,同时B在[3, 6]取值。
这无疑增加了题目的难度,思索大半天,觉得对多个变量的情况,用区间树很难有O(lgN)的解法。
那么如何找到O(lgN)的解法呢?
我知道算法版的大牛很多,象原来经常看到的math, 骇客兄等等。很希望能借这个问题向诸位请教下。谢谢~