背景
假设有2*n
要结婚的人,并且进一步假设每个人n
在以下约束下完全被其他人吸引:
因此,吸引力网络形成(无向)完整的二部图 Kn,n
。我们还假设每个人都对他们吸引的人进行排名。这些可以表示为图中的边缘权重。
一个婚姻是一个配对(A,B)
地方A
和B
被吸引到对方。如果存在另一场婚姻,婚姻中的婚姻是不稳定的,那么每一次婚姻中的一个人都可以与伴侣离婚并结婚,并且双方最终都会得到比其前夫更高的伴侣。
目标
您的任务是编写一个完整的程序或函数,以每个人的喜好作为输入并为每个人输出一个婚姻,以使每个婚姻稳定下来。
输入值
输入可以采用任何方便的格式;例如加权图,首选项的有序列表,字典/关联等。您可以选择将总人数作为输入,但不允许其他输入。
输出量
输出也可以采用任何方便的格式;例如,元组列表,最小边缘覆盖,与每个人的伴侣相关的功能等等。请注意,唯一的约束是每次婚姻都是稳定的,没有其他最优性要求。
笔记
- 您可以
O(n^2)
在Wikipedia或此Numberphile视频上找到更多信息和解决此问题的算法。但是,您可以自由使用任何算法。 - 禁止出现标准漏洞。
- 这是代码高尔夫球。最短答案(以字节为单位)获胜。
15
吸引力是对称的哈!
—
路易斯·门多
@LuisMendo我继续沿用不切实际的单词问题的传统:)
—
ngenisis
今天是情人节(UTC + 8在这里)
—
busukxuan