Codeforces 1161F Zigzag Game 稳定婚姻匹配算法

博客讨论了一种二分图博弈问题,名为Zigzag Game,其中玩家按特定规则交替移动。同时,介绍了稳定婚姻匹配算法,确保在匹配过程中不存在私奔情况。通过证明和分析,展示了如何将博弈问题转化为稳定婚姻匹配问题,并提供了相应的算法流程和代码实现。
摘要由CSDN通过智能技术生成

题意

有一个完全二分图,每边有n个点,边有边权。先手先选择 I I I D D D中的一个,后手则为另一个。先手选择一个开始位置,然后后手选择另一边的任意一个点走过去。之后两人轮流操作,每次可以选择当前点的一条出边走过去。若轮到选择 I I I的人操作,则当前走的边的边权必须大于上一次走的边的边权,选 D D D的人反之。现在可以任意扮演先手或后手,要求与交互库进行上述游戏并取得胜利。
n ≤ 50 n\le 50 n50

稳定婚姻匹配算法

现在有 n n n个男孩和 n n n个女孩,每个男孩对每个女孩有一个喜爱值,每个女孩对每个男孩也有一个喜爱值。对于一个男孩,若存在一个女孩使得男孩对她的喜爱值大于男孩对其女友的喜爱值,且女孩对这个男孩的喜爱值大于女孩对其男友的喜爱值,则他们会私奔。要求找到一种男孩和女孩的一一对应方案,使得不存在私奔情况。

算法流程:
算法采用男孩追女孩的方式。
一开始每个男孩找到自己最喜欢的女孩,然后对该女孩表白。
若该女孩没有男朋友,或是女孩对该男孩的喜爱值大于对其男友的喜爱值,则让他们俩配对,否则表白失败。
之后每个还未配对的男孩找到自己第二喜欢的女孩,然后向女孩表白,规则同上。
不停的重复上述过程,直到所有人都已经匹配为止。

证明:首先必然可以找到一个完全匹配。因为假设到最后仍存在一个男孩和一个女孩未匹配,而该男孩对所有的 n n n个女生均已表白,于是男孩在对该女生表白时必然会形成配对,故假设不成立。
可以发现,女孩的男友只会越变越好,男孩的女友只会越变越差。
假设存在私奔的情况,也就是一个男孩对另一个女孩的喜爱值大于男孩对其女友的喜爱值,且这个女孩对该男孩的喜爱值大于女孩对其男友的喜爱值。因为这个男孩会先对喜爱值较高的女孩表白,于是在男孩对该女孩表白时,必然会配对成功,故假设不成立。
于是该算法的正确性证明完毕。
(于是除了我以外的人都脱单了)

分析

这题显然是个二分图博弈,如果我们能够找到一个完全匹配,使得每次另一方走完后我方必然存在合法操作,则我方必胜。
不妨设我方是后手(Bob),先手(Alice)选的是 I I I
一个完美匹配是合法的当且仅当不存在两条匹配边 ( x , w ) , ( y , z ) (x,w),(y,z) (x,w),(y,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值