二分图匹配
流浪小林
这个作者很懒,什么都没留下…
展开
-
AIR raid(有向无环图的最小路径覆盖)
题目大意:求有向无环图的最小路径覆盖的模板题。题解:有如下公式:最小路径覆盖=点数-最大匹配数#include<bits/stdc++.h>using namespace std;const int maxn = 505;int edge[maxn][maxn], vis[maxn], link[maxn];int m, n;int find(int x){ for (int i = 1; i <=m; i++) { if (edge[x][i...原创 2022-02-16 12:58:35 · 449 阅读 · 0 评论 -
course(二分匹配)hdoj
一道裸的二分匹配AC代码:#include<bits/stdc++.h>using namespace std;const int maxn = 305;int edge[maxn][maxn], vis[maxn], link[maxn];int n, p;int find(int x){ for (int i = 1; i <=n; i++) { if (edge[x][i] == 1 && vis[i] == 0) { vi..原创 2022-02-15 23:41:50 · 83 阅读 · 0 评论 -
Fire Net(二分图最大匹配的变形)HDOJ
题目大意:在一张棋盘上放置尽可能多的棋子,使得这些棋子要么1,不共行 2,不共列 3,共行共列但之间有一堵墙作为间隔,墙用'X'表示,普通格子用‘.'表示。题解:如过去掉第三种情况那么就是我们所熟悉的单纯的利用行列进行二分匹配的模板题(76条消息) 棋盘游戏(hdu)_流浪小林的博客-CSDN博客但是现在又有了第三种情况的产生,我们不能将一行中的点简单的标记为同一个点,但是如果一行中且在墙同一侧的点我们可以认为是同一个点,同理,一列中且在墙同一侧的点我们也可以认为是同一个点。所以我们将棋盘中..原创 2022-02-15 22:54:33 · 1877 阅读 · 0 评论 -
girls and boys
题解:这是一道求二分图最大独立点集的模板题,我们有如下的公式最大独立点集=n-最大匹配数/2,为什么要除以2,因为这里的二分图是对称的,比如说1和3是匹配的,那么3和1也是匹配的,我么只需要删除1这个点就可以删除两条边,所以要除以2。AC代码:#include<bits/stdc++.h>using namespace std;int n;const int maxn = 1500;int scoreadam[maxn], scoreeve[maxn];int edg..原创 2022-02-15 21:09:58 · 185 阅读 · 0 评论 -
Card Game Cheater(二分图匹配)
题目大意:给定对手的一副牌,现在你可以重新安排你的手牌顺序,最大化你的牌比对手的牌大的数量 ,类似于田忌赛马问题题解:这道题还是一道二分匹配的问题,当你的牌比对手的牌大时,在这两张牌之间连接一条边,求最大匹配。#include<bits/stdc++.h>using namespace std;int n;const int maxn = 1500;int scoreadam[maxn], scoreeve[maxn];int edge[maxn][maxn], vis[..原创 2022-02-15 20:30:31 · 260 阅读 · 0 评论 -
50years,50colors(二分图最大匹配)
题目大意:给定一个棋盘上放有各种颜色的气球,对于每种颜色的气球,每次操作可以选择一个该种颜色的气球以及与改气球同一行同一列同一种颜色的气球,将他们全部扎破,如果操作次数大于k就输出该颜色。题解:我们对每种颜色的气球进行讨论,将每种颜色气球根据行与列建立二分图,如果最大匹配数大于k就输出(注意输出的格式有些坑,详见代码)#include<bits/stdc++.h>using namespace std;int n, m, k;const int maxn = 105;int..原创 2022-02-15 19:14:47 · 151 阅读 · 0 评论 -
棋盘游戏(hdu)
题目大意:在一张棋盘上给定k个点可以放置车,想要在车之间不互相攻击的情况下放置尽可能多的车(假设为x个)。现在定义这样的点为重要点,如果将该点去掉,就不能放下x个车。求k个点中有几个重要点?题解:对于棋盘问题,可以根据棋盘的行与列建立二分图。在每个棋子的行与列之间连一条边,如果两个棋子不共行也不共列,那么这两条边就没有公共的顶点,那么这样就可以转化为求二分图的最大匹配数。然后我们依次枚举k个点,如果该点去掉之后最大匹配数改变,则该点就是重要点。这样就可以将一个陌生的问题转化为我们数值的匈牙利算法问题..原创 2022-02-15 17:50:05 · 2056 阅读 · 0 评论