BZOJ_1433_[ZJOI2009]假期的宿舍_二分图匹配

题意:

学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。比如A和B都是学校的学生,A要回家,而C来看B,C与A不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是B睡A的床而C睡B的床。而实际情况可能非常复杂,有的人可能认识好多在校学生,在校学生之间也不一定都互相认识。我们已知一共有n个人,并且知道其中每个人是不是本校学生,也知道每个本校学生是否回家。问是否存在一个方案使得所有不回家的本校学生和来看他们的其他人都有地方住。
 
分析:
把人和床当成点,每个人向认识的人的床连边,求二分图最大匹配。
 
 
代码:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
#define N 200
int head[N],to[N*N<<1],nxt[N*N<<1],match[N],vis[N];
int T,n,is[N],in[N],cnt;
inline void add(int u,int v){
to[++cnt]=v;nxt[cnt]=head[u];head[u]=cnt;
}
bool dfs(int x){
for(int i=head[x];i;i=nxt[i]){
if(!vis[to[i]]){
vis[to[i]]=1;
if(!match[to[i]]||dfs(match[to[i]])){
match[to[i]]=x;return 1;
}
}
}
return 0;
}
int main(){
scanf("%d",&T);
while(T--){
cnt=0;memset(head,0,sizeof(head));
memset(match,0,sizeof(match));
scanf("%d",&n);
int sum=0;
for(int i=1;i<=n;i++){
scanf("%d",&is[i]);
if(is[i]==0)sum++;
}
for(int i=1;i<=n;i++){
scanf("%d",&in[i]);
if(is[i]&&in[i]==0)sum++,add(i,i+n),add(i+n,i);
}
int x;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%d",&x);
if(x&&is[j])add(i,j+n),add(j+n,i);
}
}
for(int i=1;i<=n;i++){
if(is[i]==0||(is[i]&&in[i]==0)){
memset(vis,0,sizeof(vis));
if(dfs(i))sum--;
}
}
puts(sum?"T_T":"^_^");
}
}

最新文章

  1. nginx使用ngx_lua访问后端Thrift-Server实现和介绍
  2. sql转db,后台坑货
  3. 连接linux数据库Oracle时报错ORA-12541: TNS: 无监听程序
  4. 对于 Web 开发很有用的 jQuery 效果制作教程
  5. iOS之UI--UITabBarController
  6. 一天弹出一次广告cookie
  7. python pydoc
  8. UI设计之PS界面初始化设置
  9. openshif ssh proxy
  10. 轻量级GUI enlightenment
  11. Laravel-数据库操作笔记
  12. AC自动机跟随Kuangbing学习笔记
  13. SSL与TLS的区别以及介绍(转)
  14. asp.net 后台任务作业框架收集
  15. asp.net-基础-20180319
  16. JS中的常量
  17. springboot情操陶冶-web配置(二)
  18. webpack4 搭建遇到的奇葩问题集合
  19. Python使用的技巧
  20. 剑指Offer-第一个只出现一次的字符位置

热门文章

  1. css选择器应用
  2. C 标准库基础 IO 操作总结
  3. Install PIL with Jpeg support on Ubuntu Oneiric 64bit
  4. Ocelot中文文档-配置
  5. Angular5 宏观把控
  6. Nginx日志自动按日期存储
  7. 《T-SQL查询》读书笔记Part 1.逻辑查询处理知多少
  8. python+selenium 环境搭建以及元素定位
  9. java客户端调用webService
  10. 基于java的ES开发