匈牙利二分匹配
文章平均质量分 89
代码随想录
代码随想录网站:https://programmercarl.com
展开
-
poj 匈牙利二分匹配 1274 The Perfect Stall
#include using namespace std; int map[210][210],pa[210],vis[210]; int n,m; int find(int x) { for(int i=1;i<=m;i++) { if(map[x][i]&&!vis[i]) //防止搭配重复 { v原创 2012-02-04 10:09:42 · 708 阅读 · 0 评论 -
poj 匈牙利二分匹配算法2239 Selecting Courses
和1274 差不多,我在1274 写的详细,这道题 用一下三维数组,和模板一个道理 #include using namespace std; int map[310][15][15],pa[15][15],vis[15][15]; int find(int x) { for(int i=1;i { for(int j=1;j {原创 2012-02-04 12:28:51 · 608 阅读 · 0 评论 -
poj 1422 Air Raid 最小二分匹配 基础
最小覆盖,用n-最小覆盖书,我对匈牙利有个深一点的了解,一开始我还想了半天#include using namespace std; int n; int map[150][150],pa[150],vis[150],sign[150]; int find(int x) { for(int i=1;i<=n;i++) { if(map[x][i]&&原创 2012-02-05 10:55:37 · 752 阅读 · 0 评论 -
poj 1325 Machine Schedule 匈牙利二分匹配 基础
读懂题意其实就很简单,就是建立一个想,x,y的二部图#include using namespace std; int map[105][105],pa[105],vis[105]; int n,m; int find(int x) { for(int i=1;i<m;i++) { if(map[x][i]&&!vis[i]) {原创 2012-02-05 18:36:57 · 564 阅读 · 0 评论 -
poj 1719 Shooting Contest 二分匹配
题意很纠结,还有找对应关系,我已开始用c去对应r,看cou是否等于c,这就错了,题意说每一行必须射一点,所以应该r去对应c,看cou是否=r #include using namespace std; int r,c; int map[1005][1005],vis[1005],pa[1005],ans[1005]; int find(int x) { for原创 2012-02-06 21:50:19 · 643 阅读 · 0 评论 -
poj 2594 Treasure Exploration 匈牙利二分匹配+floyd
这道题可以理解为只要有一个点连出去了,连了集合点无所谓,那么我们就少用一个机器人,譬如1连2,3,4,5,那么我们就少用一个机器人,用4个就行,所以说 二分匹配,有几个匹配,我们就少用几个,所以我们用匈牙利来解决 还有一个问题是在用匈牙利时,如果1连2,2连3,4又连2,2又连5,这样的话,我们在用匈牙利时,第一次走过2,第二次,4就不能在走2了,但根据提议是可以走的 所以我们用一下floy原创 2012-02-08 12:55:32 · 723 阅读 · 0 评论 -
poj 匈牙利二分匹配 模板 poj题目
二分匹配模板 [cpp] view plaincopyprint? bool makepair(int t) { int i; for(i=1;i { if(path[t][i]==1 && visited[i]==0) //i号男还没被需要并且和t号女互相喜欢 { v转载 2012-02-15 10:37:12 · 750 阅读 · 0 评论 -
poj 3020 Antenna Placement 匈牙利二分匹配 最小覆盖数 !!!!
这道题只要建立起二分图就好说了,我们可以将*对应他周边的*,这样剑气二分图,所需最小的覆盖数=* 的数量-匹配数量/2; #include using namespace std; int map[500][500],vis[500],pa[500],v[500][500]; char a[500][500]; int n; int find(int x) { for(int i原创 2012-02-15 20:37:18 · 742 阅读 · 0 评论