题目链接:
https://www.luogu.com.cn/problem/P2055
算法:1匈牙利算法
思路
1:一道经典的汉子找妹子模型,关键是找对谁是汉子,谁是妹子
2:需要床的是汉子,可以提供床的是妹子
3:那么即不是本学校的学生和是本学校的学生但是不回家的人需要床是汉子,所有的本校学生都可以提供床,都是妹子
4:那么就是汉子节点连妹子妹子节点构成二分图
一:使用读入优化
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e2+1;
int t,n,a,tot,now,head[maxn],to[maxn*maxn],next[maxn*maxn],match[maxn],vis[maxn],student[maxn][2];
inline void clear()//初始化
{
// for(int i=1;i<=tot;i++)to[i]=next[i]=head[i]=0;
tot=0;
for(int i=n+1;i<=2*n;i++)match[i]=vis[i]=0;
for(int i=1;i<=n;i++)student[i][0]=student[i][1]=to[i]=next[i]=head[i]=0;
}
inline int read()//读入优化