门票分配

时间:2016-08-09 09:40:20

标签: c++ algorithm

有n个人。每个人都对一定数量的事件感兴趣。 (最多10)。现在每个人都有一张可能与他无关的活动的门票。

通过在他们之间交换门票,有多少人可以获得他们感兴趣的活动的门票。

例如

对A感兴趣的人 - Event1,Event3               有票 - 活动4

B人感兴趣 - 活动2,活动4               有票 - 活动1

C人感兴趣 - 活动8               有票 - 活动4

A人和B人可以兑换门票并参加他们的活动。 C不能。所以回答是2

我想知道如何处理此解决方案

1 个答案:

答案 0 :(得分:1)

这听起来很像我们在所谓的数学贸易中的表现。基本上,这是一种收集每个参与者为交易提供的项目“集合”的数据的方式,并针对每个参与者的“需求”进行检查,然后尝试最大化交易量,以便尽可能多的参与者可以收到他们想。

这种方法可以最大化交易,因此交易是以圈子形式进行的。即交易不一定是直接的,因此A人可能会给B人一些东西,但可能会收到来自C的东西。(这些交易涉及很多信任)

这种循环交易是否适合您的解决方案,或者您只是在寻找直接交易? (A给B,B给A)

如果你想要一个具体的例子,我通常使用的软件名为TradeMaximizer,它是开源的,所以你可以在SourceForge上轻松找到它,并根据需要进行挖掘。

很抱歉,如果这不是非常有帮助,第一次发帖,并且无法添加评论!