随笔分类 -  匹配

摘要:#include#include#include#include#includeusing namespace std;const int maxn = 105;const int INF = (1t){ slack[y]=t; } } ... 阅读全文
posted @ 2014-07-12 14:00 贝尔摩德 阅读(160) 评论(0) 推荐(0)
摘要:可以想到是个二分图,x节点是喜欢狗的,y节点是喜欢猫的,在有冲突的节点间连边(x节点间不会有冲突,y节点间不会有冲突,所以是二分图),即若x[i ]喜欢的是y[j ]讨厌的,或x[i ]讨厌的是y[j ]喜欢的,那么g[i ][j ] = g[ j][ i ] = 1,则该二分图的最大点独立集除以2... 阅读全文
posted @ 2014-04-17 17:19 贝尔摩德 阅读(148) 评论(0) 推荐(0)
摘要:课程为x节点,时间为y节点,连边求最大匹配#include #include #define maxn 310int nx,ny;int g[maxn][maxn],ans,sx[maxn],sy[maxn];int cx[maxn],cy[maxn];int path(int u){ sx[... 阅读全文
posted @ 2014-03-08 15:56 贝尔摩德 阅读(150) 评论(0) 推荐(0)
摘要:#include #include #define maxn 110int nx,ny;int map[maxn][maxn],ans,sx[maxn],sy[maxn];int cx[maxn],cy[maxn];int down;int l,r,mid;int path(int u){ s... 阅读全文
posted @ 2013-12-15 13:16 贝尔摩德 阅读(119) 评论(0) 推荐(0)
摘要:先说KM算法求二分图的最佳匹配思想,再详讲KM的实现。【KM算法求二分图的最佳匹配思想】对于具有二部划分( V1, V2 )的加权完全二分图,其中 V1= { x1, x2, x3, ... , xn }, V2= { y1, y2, y3, ... , yn },边具有权值 Wi,j 。该带权二... 阅读全文
posted @ 2013-11-16 23:27 贝尔摩德 阅读(244) 评论(0) 推荐(0)
摘要:题目大意:幼儿园中所有的男孩之间都互相认识,所有的女孩都互相认识,男孩和女孩之间有一部分互相认识,求一个最大完全子图(最大团),即去一些顶点,使得他们之间都互相认识,并使取出的节点数最多。男孩和女孩本身就是完全子图,将女孩看成一个集合,男孩看成一个集合,不能直接选择认识关系作为边集(因为这样不符合二... 阅读全文
posted @ 2013-11-12 23:06 贝尔摩德 阅读(362) 评论(0) 推荐(0)
摘要:题目大意:先解释有向无环图的路径覆盖,在图中找一些不相交的简单路径,使之覆盖图中所有顶点,且每一顶点只有一条路径与之关联,也就是说,若沿着这些路径中每条路径从起点走到终点,则可以恰好经过图中每一个顶点一次且仅一次。该题是求最小路径覆盖,即使得路径条数最小。题中的限制在顶点,将图转换为二分图,每个顶点... 阅读全文
posted @ 2013-11-12 13:32 贝尔摩德 阅读(198) 评论(0) 推荐(0)
摘要:在一个n*n网格上有一些小行星,一发子弹可以摧毁一行或一列的小行星,问最少需要多少发子弹可以摧毁全部小行星。建立行与列的二分图,若第 i 行第 j 列有小行星则在 xi与 yj间连一条边,对于每一条边的两个顶点必须至少有一个被选择,即最小点覆盖,由konig定理,点覆盖数等于匹配数,所以用匈牙利算法... 阅读全文
posted @ 2013-11-11 23:33 贝尔摩德 阅读(165) 评论(0) 推荐(0)