我是靠谱客的博主 鲜艳口红,最近开发中收集的这篇文章主要介绍二分图博弈(通俗感性证明),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一道很友好有趣的例题loj


第一次见识到这个东西,觉得非常巧妙

一 张 二 分 图 , 左 边 的 叫 白 点 , 右 边 的 叫 黑 点 一张二分图,左边的叫白点,右边的叫黑点 ,,

先 手 先 从 白 点 中 选 一 点 , 然 后 后 手 必 须 选 与 之 配 对 的 黑 点 先手先从白点中选一点,然后后手必须选与之配对的黑点 ,

以 此 往 复 , 谁 先 不 能 选 点 谁 就 输 了 以此往复,谁先不能选点谁就输了 ,

首 先 我 们 先 使 用 网 络 流 求 一 遍 二 分 图 最 大 匹 配 首先我们先使用网络流求一遍二分图最大匹配 使



结 论 Ⅰ : 若 先 手 走 的 第 一 步 可 能 不 在 最 大 匹 配 中 , 先 手 必 胜 color{Red}结论Ⅰ:若先手走的第一步可能不在最大匹配中,先手必胜 :,

为 了 和 先 手 走 的 白 点 对 应 , 后 手 走 的 黑 点 一 定 在 最 大 匹 配 为了和先手走的白点对应,后手走的黑点一定在最大匹配 ,

原 因 : 若 不 在 最 大 匹 配 , 就 形 成 了 新 匹 配 , 不 满 足 最 大 匹 配 原因:若不在最大匹配,就形成了新匹配,不满足最大匹配 :,,

接 下 来 每 一 步 , 先 手 只 需 要 选 与 后 手 相 匹 配 的 白 点 即 可 接下来每一步,先手只需要选与后手相匹配的白点即可 ,

那 么 后 手 被 动 的 选 最 大 匹 配 中 的 黑 点 那么后手被动的选最大匹配中的黑点

由 于 后 手 先 走 最 大 匹 配 中 的 点 , 所 以 最 后 一 定 是 后 手 先 无 路 可 走 , 先 手 胜 由于后手先走最大匹配中的点,所以最后一定是后手先无路可走,先手胜 ,,

你可能有疑问,为什么后手不能走非最大匹配中的黑点来和白点匹配呢?

原 因 在 于 , 如 果 有 非 最 大 匹 配 的 黑 点 来 匹 配 那 个 白 点 就 矛 盾 了 原因在于,如果有非最大匹配的黑点来匹配那个白点就矛盾了 ,

因 为 形 成 了 一 条 新 的 增 广 路 , 最 大 匹 配 更 多 了 因为形成了一条新的增广路,最大匹配更多了 广,

回 想 一 下 匈 牙 利 算 法 d f s 找 妹 子 腾 空 间 的 找 增 广 路 流 程 回想一下匈牙利算法dfs找妹子腾空间的找增广路流程 dfs广

如 果 这 里 找 到 没 有 和 白 点 配 对 的 黑 点 如果这里找到没有和白点配对的黑点

那 么 就 为 最 开 始 那 个 先 手 选 的 没 有 在 最 大 匹 配 中 的 白 点 找 到 了 位 置 那么就为最开始那个先手选的没有在最大匹配中的白点找到了位置

证 毕 color{Red}证毕

结 论 Ⅱ : 若 最 开 始 先 手 走 的 点 在 所 有 的 最 大 匹 配 中 都 存 在 , 必 输 color{Red}结论Ⅱ:若最开始先手走的点在所有的最大匹配中都存在,必输 :,

这 个 很 简 单 , 相 当 于 结 论 Ⅰ 的 逆 否 命 题 这个很简单,相当于结论Ⅰ的逆否命题 ,

问题来了,如何判断这个点一定在所有的最大匹配中

法 一 : color{orange}法一: :

把 这 个 点 和 相 邻 的 边 从 图 中 删 掉 , 再 次 求 最 大 匹 配 , 若 匹 配 数 减 少 一 定 在 把这个点和相邻的边从图中删掉,再次求最大匹配,若匹配数减少一定在 ,,

但是这个做法不是那么的优秀,考虑优化

法 二 : color{Green}法二: :

在 所 有 的 最 大 匹 配 中 都 出 现 过 在所有的最大匹配中都出现过

也 就 是 所 有 的 最 大 流 s 到 这 个 点 的 边 都 有 流 量 也就是所有的最大流s到这个点的边都有流量 s

相 当 于 在 某 个 最 大 流 方 案 中 , s 到 这 个 点 的 边 有 流 量 , 且 残 量 网 络 不 存 在 s 到 i 的 路 径 相当于在某个最大流方案中,s到这个点的边有流量,且残量网络不存在s到i的路径 ,s,si

那 么 求 最 大 流 的 最 后 一 次 b f s 中 ( 无 增 广 路 , 必 定 到 不 了 t ) , s 能 到 的 点 都 会 被 标 记 起 来 那么求最大流的最后一次bfs中(无增广路,必定到不了t),s能到的点都会被标记起来 bfs(广,t),s

判 断 下 即 可 判断下即可

也 就 是 满 足 d [ i ] . f l o w = = 0 & & d i s [ v ] = = 0 也就是满足d[i].flow==0&&dis[v]==0 d[i].flow==0&&dis[v]==0

最后

以上就是鲜艳口红为你收集整理的二分图博弈(通俗感性证明)的全部内容,希望文章能够帮你解决二分图博弈(通俗感性证明)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部