随笔分类 -  二分图匹配

摘要:"传送门" 这应该是比裸的一个网络流/二分图匹配了。 直接跑一遍Dinic求出最大流。再依次遍历所有二分图上的边,如果剩余流量是0,则说明两者相互匹配,作为一组输出。 cpp include include include include define MAXN 205 define MAXM 20 阅读全文
posted @ 2019-01-05 18:43 Neworld1111 阅读(140) 评论(0) 推荐(0)
摘要:建立一个超级源点和超级汇点,点与点之间的容量均为1,因为一个点只能匹配一个点,源点向所有左边的点连边,汇点向右边的点连边。最后网络的最大流即为最大匹配。 cpp include include include define MAXN 2005 struct queue { int q[MAXN],h 阅读全文
posted @ 2018-12-29 20:07 Neworld1111 阅读(329) 评论(0) 推荐(0)
摘要:"传送门" 所有学生都有床可以让认识自己的人睡,不在校的学生不占用床铺。 考虑建一个二分图,人对应床,求出最大匹配,根据题意,所有人都应该被安排上,那么就不能存在无法匹配。 cpp include include include define MAXN 55 int Link[MAXN],vis[M 阅读全文
posted @ 2018-10-05 10:58 Neworld1111 阅读(99) 评论(0) 推荐(0)
摘要:"题目链接" cpp include include define MAXN 1005 using namespace std; int link[MAXN],vis[MAXN],head[MAXN]; struct edge{ int v,next; }G[MAXN 阅读全文
posted @ 2018-03-08 23:35 Neworld1111 阅读(140) 评论(0) 推荐(0)
摘要:"推荐一篇Blog" cpp //Hungarian Algorithm include include define MAXN 1005 using namespace std; int link[MAXN],head[MAXN]; bool vis[MAXN]; int N,M,E,tot=0; 阅读全文
posted @ 2018-03-07 22:49 Neworld1111 阅读(176) 评论(0) 推荐(0)