题目:https://www.luogu.org/problemnew/show/P2055 二分图匹配: 注意要连边的话对方必须有床! 代码如下: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ],ct,pre[]; ],hm[],vis[]; struct N{ int to,nxt; N(,):to(t),nx…
[ZJOI2009]假期的宿舍 二分图匹配匈牙利 一个人对应一张床,每个人对床可能不止一种选择,可以猜出是二分图匹配. 床只能由本校的学生提供,而需要床的有住校并且本校和外校两种人.最后统计二分图匹配对数是否等于需要的床数即可. 注意细节,认真审题. #include <cstdio> #include <cstring> #define MAXN 100 using namespace std; int head[MAXN],nxt[10000],vv[10000],tot; i…
1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2375  Solved: 1005[Submit][Status][Discuss] Description Input Output Sample Input 1 3 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 Sample Output ˆ ˆ HINT 对于30% 的数据满足1 ≤ n ≤ 12.对于100% 的数据满足1 ≤ n ≤…
题目:https://www.luogu.org/problemnew/show/P2055 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int T,n,hd[N],xnt,to[N*N],nxt[N*N],pre[N]; bool vis[N],hj[N],flag; int rdn() { ;char ch…
主要是main()中的处理,接下来就是二分匹配的模板题了 #include<cstdio> #include<cstring> #define maxn 110 using namespace std; int a[maxn][maxn],link[maxn]; int b[maxn],c[maxn]; bool vis[maxn]; int n,m,cnt,ans,T; bool find(int x) { ;j<=n;j++){ if(a[x][j]&&!…
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1433 [算法] 二分图匹配[代码] #include<bits/stdc++.h> using namespace std; #define MAXN 55 struct edge { int to,nxt; } e[MAXN * MAXN]; int i,j,n,T,tot; ]; ]; bool g[MAXN][MAXN]; bool ans; template <ty…
题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题. 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识.我们假设每个人只能睡和自己直接认识的人的床.那么一个解决方案就是 B 睡 A 的床而 C 睡 B 的床.而实际情况可能非常复杂,有的人可能认识好多在校学生,在校学生之间也不一定都互相认识. 我们已知一共有 n 个人,并且知道其中每个人是不是本校学生,也知道每个本校学生是否回家.问是否存在一个方案使…
题意 题目链接 给出一个带权有向图,选出n + 1n+1条链,问能否全部点覆盖,如果不能,问不能覆盖的点权最小值最大是多少 Sol TJOI怎么净出板子题 二分答案之后直接二分图匹配check一下. 多读读题就会发现题目要求的就是可相交的最小路径覆盖,那么按照套路先floyd一遍,如果能联通的话就再二分图中加边,然后判一下最大匹配数就行了.刚开始以为因为有的点可以不选,要在匈牙利的时候进行玄学贪心,其实是不用的,因为我们已经求过传递闭包了.所以直接求就是对的 因为\(M \leqslant 50…
原文链接http://www.cnblogs.com/zhouzhendong/p/8372785.html 题目传送门 - BZOJ1433 题解 我们理一理题目. 在校的学生,有自己的床,还可以睡朋友的床. 离校的学生,不占床. 外来的学生,只能睡朋友的床. 然后就是一个裸的二分图匹配了. 代码 #include <cstring> #include <cstdlib> #include <cmath> #include <cstdio> #includ…
题目链接 看到题目肯定首先会想到搜索. 然鹅数据范围\(n<=200\)这么大(其实也不算太大),肯定是不行的. 如果\((i,j)\)是\(1\),从\(i\)向\(j\)连一条边,表示第\(j\)列可以交换第\(i\)列得到,然后跑一遍匈牙利就行了(Dinic我不会啊). #include <cstdio> #include <cstring> #include <algorithm> #define Open(s) freopen(s".in&qu…