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