Algorithm 我应该使用什么算法

Algorithm 我应该使用什么算法,algorithm,Algorithm,我需要写一个程序,计算出在天黑之前有多少孩子能找到一张床睡觉 每个孩子和每张床都有自己的坐标集(x.x,y.y)。 一张床只能睡一个孩子。 没有两个孩子或两张床在同一组坐标上。 每个孩子每分钟走一步,例如,一个孩子从22.0,0.0走到19.0,0.0需要3分钟。 例如: Child1是22.0,0.0 Child2是0.0,19.0 Bed1的值为18.0,0.0 Bed2是50.0,14.0 5分钟后天黑了,5分钟内有多少孩子能找到一张床 我一直在研究最大流问题,但我认为它不适用于我的问题。

我需要写一个程序,计算出在天黑之前有多少孩子能找到一张床睡觉

每个孩子和每张床都有自己的坐标集(x.x,y.y)。

一张床只能睡一个孩子。

没有两个孩子或两张床在同一组坐标上。

每个孩子每分钟走一步,例如,一个孩子从22.0,0.0走到19.0,0.0需要3分钟。

例如:

Child1是22.0,0.0

Child2是0.0,19.0

Bed1的值为18.0,0.0

Bed2是50.0,14.0

5分钟后天黑了,5分钟内有多少孩子能找到一张床


我一直在研究最大流问题,但我认为它不适用于我的问题。

要解决这个问题,你需要实现一个二部最大匹配(最大流的特例)算法。因此,首先需要从数据中创建一个图形。将每个孩子连接到每张床上,除非孩子到床上的距离超过了天黑前的剩余时间。由于二部最大匹配也可以用max-flow来求解,所以我们用这个图构造了一个流网络,并用max-flow来求解它。为此,您应该创建一个容量为
infinity
source
节点,并将其连接到所有子节点,还应该创建一个容量为
infinity
sink
节点,并将每个床位连接到该节点。同时为儿童和床之间的所有边缘分配一个大小为1的容量。之后,通过在此图上运行最大流算法,您将找到答案。

至少给出一个暴力解决方案,这样我们就知道您已经理解了问题……如果您希望有人帮助您,请给出一些您尝试过的代码