随笔分类 -  图论:最大匹配匈牙利,km算法

摘要:题意 有一个 n*n 的图,. 代表空白区域,X 代表墙,现在要在空白区域放置结点,要求同一行同一列只能放一个,除非有墙阻隔,问最多能放多少个点 思路 只有在墙的阻隔情况下,才会出现一行/列出现多个点的情况,那么可以考虑进行缩点,将同一行且没有墙体阻隔的区域缩成一个点,放到左点集中,将同一列且没有墙 阅读全文
posted @ 2019-08-13 20:34 DWVictor 阅读(1300) 评论(0) 推荐(2)
摘要:题目 给到一个矩阵,有些格子上是草,有些是水。需要用宽度为1,长度任意的若干块木板覆盖所有的水,并不能覆盖草,木板可以交叉,但只能横竖放置,问最少要多少块板。 分析 经典的矩阵二分图构图和最小点覆盖。无非就是两种方向,横向和竖向。我们把水块连续的编成同一号,那么对于一个点,它会有一个横向编号和纵向编 阅读全文
posted @ 2019-08-13 20:28 DWVictor 阅读(298) 评论(0) 推荐(1)
摘要:题意 首先判断所有的人可不可以分成两部分,每部分内的所有人都相互不认识。如果可以分成 则求两部分最多相互认识的对数。 解题 类似分成两组,同组互不相关,就可能使判断是否为二分图 能否分成两部分 则是判断是否是一个二分图。无向图G为二分图的充分必要条件是:G至少有两个顶点,且当存在回路时,其所有回路的 阅读全文
posted @ 2019-08-13 00:27 DWVictor 阅读(156) 评论(0) 推荐(0)
摘要:题意: 给出一张图,图中'X'表示wall,'.'表示空地,可以放置blockhouse同一条直线上只能有一个blockhouse,除非有wall 隔开,问在给出的图中最多能放置多少个blockhous 分析: 把原始图分别按行和列缩点 建图:横竖分区。先看每一列,同一列相连的空地同时看成一个点,显 阅读全文
posted @ 2019-08-12 23:25 DWVictor 阅读(185) 评论(0) 推荐(0)