我在一些真实的用例中想到了这个问题,但由于我不知道它叫什么,我找不到任何关于它的信息。如果它类似于一些已知的计算机科学问题,那么其他人可能做得比我更好。
我有一堆乐高积木,里面有各种各样的砖块。可能存在任何给定类型的砖块数量。我还有一套我可以使用lego构建的设计/东西,每个都有一个所需的部分列表。我可以用一堆乐高积累什么? (一次一个)
答案 0 :(得分:2)
这是一个多维范围查询问题。如果k是砖类型的数量,那么每个设计可以用k维点(长度为k的数组)表示,其坐标是每种砖的所需数量,你要找的是集合数据库中所有点的坐标都小于查询点(x_1,...,x_k)的对应坐标,这些坐标对应于您的堆。另一种说法是你在寻找由(0,...,0) - (x_1,...,x_k)限定的超直角中的一组点。