可以装箱的点的 C++ 子集

问题描述

我在实平面中有一组 N 个点,想知道它们的子集有多少可以“装箱”。也就是说,存在多少个子集,使得实平面中存在一个边平行于 x 和 y 轴的矩形,其中所有点的子集都在里面,任何其他点都在外面。我更喜欢 C++11 解决方案。这是我正在进行一个项目的一部分,但它能够快速运行以最大限度地减少负载相当重要。

我认为凸包在这里可能是相关的,但我很难看到它们实际上如何提供帮助。

一些说明:

由于我们在真实平面上,您可以假设没有点具有完全相同的 x 或 y 坐标。如果它使问题更容易,您可以将 x 和 y 都设为整数,不共享 x 或 y 坐标。

空集和整个集都被计算在内,尽管两者都可以正常工作。

点数并非不合理,大约为 1000,但这意味着所有子集的直接 bash 可能不起作用。 C++中子集的数量应该能够适应一个long long。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)