Algorithm 2011年,一位当地的奥兰皮亚德关于Informatic的问题

Algorithm 2011年,一位当地的奥兰皮亚德关于Informatic的问题,algorithm,data-structures,graph,dynamic-programming,Algorithm,Data Structures,Graph,Dynamic Programming,代理在n生产者和m消费者之间工作ith生产者,今年生产s_i(糖果类产品)糖果和jth消费者消费(如eat!)b_j糖果。对于销售的每一种糖果,代理商都会得到1美元的回报。对于一些问题,定义了一条严格的规则,即生产商应向任何生产商销售糖果,且两者之间的距离不大于100KM(KM)。如果我们有所有生产者-消费者对的列表,它们之间的距离小于100KM,那么下面哪一种算法适合于寻找最大收益?(假设s_i和b_j可能变得非常大) 一位用户在这里提问: 但我认为答案是错误的。我需要帮助整个竞争对手的专家

代理在
n
生产者和
m
消费者之间工作
i
th生产者,今年生产
s_i
(糖果类产品)糖果和
j
th消费者消费(如eat!)
b_j
糖果。对于销售的每一种糖果,代理商都会得到
1
美元的回报。对于一些问题,定义了一条严格的规则,即生产商应向任何生产商销售糖果,且两者之间的距离不大于
100
KM(KM)。如果我们有所有生产者-消费者对的列表,它们之间的距离小于
100
KM,那么下面哪一种算法适合于寻找最大收益?(假设
s_i
b_j
可能变得非常大)

一位用户在这里提问:


但我认为答案是错误的。我需要帮助整个竞争对手的专家

好的解决方案是使用最大流量的解决方案。图的结构如下:左侧部分对应于生产者,右侧部分对应于消费者。从源顶点到每个具有s_i容量的生产者应有一条边。从每个消费者到具有b_j容量的接收器节点还应该有一条边。如果生产者和消费者彼此靠近,他们之间应该有一个无限容量的边界。答案是从源到汇的最大流量的大小。无论s_i和b_j的值如何,都可以在多项式时间内找到最大流量(它是消费者和生产者数量的多项式)

具有最大匹配的解决方案是不好的,因为它需要(s_i和b_j之和)边。如果s_i和b_j较大,则不可行


动态规划解决方案不好,因为可能根本没有多项式动态规划解决方案。

这似乎是线性规划运输问题。将生产商到消费者之间的距离>100的运输成本保持为无穷大。@user1990169,它在哪里?
1) Maximal Matching

2) Dynamic Programming

3) Maximum Flow 

4) 1 , 3