![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分图
文章平均质量分 76
cadongllas
这个作者很懒,什么都没留下…
展开
-
HDU 1281 棋盘游戏 二分图
在一个N*M大小的棋盘中,有K个空位置,(1)在这些空位置上最多能放多少的“车”(一行或一列最多一个)。(2)空位置中,有的位置若不放“车”,就无法保证放尽量多的“车”,这样的格子被称做重要点,求重要点的个数可以看成行与列的二分匹配问题,因为每行每列至多只能放一个棋子#include #include #include #include #define rep(原创 2016-09-11 23:06:54 · 253 阅读 · 0 评论 -
HDU 2819 Swap 最大匹配问题
交换图的某些行或者是某些列(可以都换),使得这个N*N的图对角线上全部都是1.建立二分图,左边表示的是横坐标,右边表示纵坐标,所以范围都是1~N,然后如果a[i][j]是1,那我们就从X的i向Y的j引一条边,然后直接求最大匹配数即可#include #include #include #include #define rep(i, j, k) for(int i原创 2016-09-11 23:11:16 · 225 阅读 · 0 评论 -
HDU 4185 Oil Skimming 匈牙利
用1*2的木板覆盖矩阵中的‘#’,(木板要覆盖的只能是‘#’),问最多能用几个木板覆盖很典型的二分匹配问题,将矩阵中的点分成俩种,下标i+j为奇数和偶数俩种,即把矩阵当成一个黑白棋盘,然后用匈牙利二分匹配#include #include #include #include #include #define rep(i, j, k) for(int i = j原创 2016-09-11 23:15:00 · 263 阅读 · 0 评论 -
HDU 3829 Cat VS Dog
有p个小朋友参观动物园,动物园里面有两种动物,分别为猫和狗。规定一个小朋友喜欢猫就讨厌狗,喜欢狗就讨厌猫。现在管理员要移走0一些动物,当然,移走也是有条件的。比如一个小朋友喜欢猫3,讨厌狗4.那么移走狗4,这个小朋友就会非常开心。同样,如果移走猫3,小朋友就会很不高兴。现在问怎么样才能使开心的小朋友的人数最多二分图最大独立集#include #include #incl原创 2016-09-11 23:16:12 · 289 阅读 · 0 评论 -
POJ 2289 Jamie's Contact Groups 二分图多重匹配
给定一个规模为n的名单,要将名单中的人归到m个组中,给出每个人可能的分组号,需要确定一种分配方案,是的最大规模的组最小建图之后,算是一个匈牙利算法的改进,看着kuangbin的模板写的#include#include#include#includeconst int M=2010;int bmap[M][M];bool bmask[M];int nx,ny;int原创 2016-09-11 23:23:31 · 554 阅读 · 0 评论 -
HDU 2255 奔小康赚大钱 km算法
村里要分房子,有N家老百姓,刚好有N间房子。考虑到每家都要有房住,每家必须分配到一间房子且仅仅能分配到一间房子。另外, 村长为了得到最大利益,让老百姓对房子进行估价因为不同房子的价值是不同的,所以只考虑匹配数是不可以的,要用km算法或者网络流求最大匹配数值#include #include #include #include #define rep(i, j, k)原创 2016-09-11 23:32:50 · 394 阅读 · 0 评论 -
HDU 3488 Tour 最大完美匹配
有N个城市,M条街道,每条街道是单向的,现在要你设计多条路线覆盖所有的点,每条路线都是一个环,并且每个点仅能被一条路线覆盖且只经过一次因为是圈,所以每个点的入度和出度应该都是1,故将一个点拆成两个点,入度点和出度点,可以想到,网络流的过程就是度数的流,因此可以建图跑最大匹配#include #include #include #include #define rep(i原创 2016-09-11 23:35:21 · 273 阅读 · 0 评论 -
hdu 3488 二分图完美匹配
题意:有N个城市,M条街道,每条街道是单向的,现在要你设计多条路线覆盖所有的点,每条路线都是一个环,并且每个点仅能被一条路线覆盖且只经过一次每个点一个入度一个出度,拆点然后二分图,用km跑完美匹配就可以得到路线#include #include #include #include #define rep(i, j, k) for(int i = j; i <= k; i++原创 2016-09-03 14:29:17 · 281 阅读 · 0 评论 -
codeforces 166D Shoe Store 二分图 匈牙利算法
题意:有n双鞋,给定其分别的售价和尺码,保证所有鞋的尺码是不用的,有m个人来买鞋,给定其脚的大小以及手里的钱,他可以买跟脚号码相等或者大一号的鞋,同时需要保证手里的钱足够,问最多卖出的营业额是多少因为每双鞋的尺码是不一样的,所以每个人最多有两种购买的可能,一边是顾客,一边是鞋,用map建成二分图,然后用匈牙利求解即可但是为了保证营业额最大,首先要将鞋的售价降序排序,这样可以保证最优原创 2016-09-08 12:53:38 · 745 阅读 · 0 评论