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 ≤ 50,1 ≤ T ≤ 20。


最近被二分图到底要用邻接矩阵还是邻接表搞得十分分裂。。

还是看图的稠密程度吧???

这题的建图十分经典,对于每一个本校学生对自己的床连边,其他连边同输入的矩阵。

本质虽然是匈牙利算法求二分图最大匹配,事实上不用把最大匹配求出来,只要增广到对于一个需要住校的人没有床睡就好了。

 #include<cstdio>
#include<cstring>
#include<iostream>
using namespace std; const int maxn=;
int T,n,n_l,n_r;
int E[maxn][maxn],stu[maxn],hom[maxn],mat[maxn];
bool check[maxn]; bool dfs(int x){
for(int i=;i<=n_r;i++)
if(stu[i]&&E[x][i]&&!check[i]){
check[i]=;
if(mat[i]==-||dfs(mat[i])){
mat[i]=x;
return ;
}
}
return ;
} bool hungary(){
memset(mat,-,sizeof mat);
for(int i=;i<=n;i++){
memset(check,,sizeof check);
if(!hom[i]&&!dfs(i)) return ;
}
return ;
} void init(){
scanf("%d",&n); n_l=n_r=n;
for(int i=;i<=n;i++) scanf("%d",&stu[i]);
for(int i=;i<=n;i++){
scanf("%d",&hom[i]);
if(!stu[i]) hom[i]=;
}
for(int i=;i<=n;i++){
for(int j=;j<=n;j++)
scanf("%d",&E[i][j]);
if(stu[i]) E[i][i]=;
}
} int main(){
scanf("%d",&T);
while(T--){
init();
puts(hungary()?"^_^":"T_T");
}
return ;
}

bzoj1433: [ZJOI2009]假期的宿舍 [二分图][二分图最大匹配]的更多相关文章

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

    BZOJ_1433_[ZJOI2009]假期的宿舍_二分图匹配 题意: 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回 ...

  2. BZOJ1433 ZJOI2009 假期的宿舍 二分图匹配

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2375  Solved: 1005[Submit][Sta ...

  3. bzoj1433: [ZJOI2009]假期的宿舍(最大二分图匹配)

    1433: [ZJOI2009]假期的宿舍 题目:传送门 题解: 这题有点水 跑个二分图匹配就完事了(注意在校生不是一定都互相认识) 代码: #include<cstdio> #inclu ...

  4. bzoj1433: [ZJOI2009]假期的宿舍

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2286  Solved: 969[Submit][Stat ...

  5. bzoj1433[ZJOI2009]假期的宿舍(匈牙利)

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2544  Solved: 1074 [Submit][St ...

  6. bzoj1433 [ZJOI2009]假期的宿舍(最大流)

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1717  Solved: 754[Submit][Stat ...

  7. bzoj1433 [ZJOI2009]假期的宿舍 最大流

    [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3429  Solved: 1459[Submit][Status][D ...

  8. BZOJ1433[ZJOI2009]假期的宿舍——二分图最大匹配

    题目描述 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回家,而C来看B,C与A不认识.我们假设每个人只能睡和自己直接认 ...

  9. BZOJ1433 [ZJOI2009]假期的宿舍 二分图匹配 匈牙利算法

    原文链接http://www.cnblogs.com/zhouzhendong/p/8372785.html 题目传送门 - BZOJ1433 题解 我们理一理题目. 在校的学生,有自己的床,还可以睡 ...

随机推荐

  1. ulimit - 获取和改变用户的限制设定

    大纲 #include <ulimit.h> long ulimit(int cmd, long newlimit); 描述 警告: 这个函数已经被废弃. glibc 不再提供这个包含文件 ...

  2. 笔记:Python的浅复制和深复制

    方法copy返回一个新字典,其包含的键-值对与原来的字典相同(这个方法执行的是浅复制,因为值本身是原件,而不是副本). >>> x = {"username": ...

  3. cdn 的配置及原理

    CDN概况 CDN的全称是Content Delivery Network,即内容分发网络. CND加速主要是加速静态资源,如网站上面上传的图片.媒体,以及引入的一些Js.css等文件. CND加速需 ...

  4. Hbase和Hive在大数据架构中处在不同位置

    先放结论:Hbase和Hive在大数据架构中处在不同位置,Hbase主要解决实时数据查询问题,Hive主要解决数据处理和计算问题,一般是配合使用.一.区别:Hbase: Hadoop database ...

  5. DOM——创建元素的三种方式

    document.write()  document.write('新设置的内容<p>标签也可以生成</p>'); innerHTML  var box = document. ...

  6. Portainer Exec Container 失败解决方案

    近日,将portainer服务挂了个域名,然后用Nginx代理的时候发现不能attach容器了,经过搜索在issue 找到解决方案 1.修改Nginx config server { listen 8 ...

  7. 中断控制及basepri 与 basepri_max

    1.总开关 每个CPU有一个中断总开关.通过CPU中断控制寄存器实现.Cortex-M的中断控制寄存器包括:FAULTMASK.PRIMASK.BASEPRI.BASEPRI_MAX.总开关的本质是变 ...

  8. CSS3 RGBA等于RGB加上opacity吗?

    在我们前端设计里有两篇教程: CSS3 RGBA colors使用说明 css3中opacity属性学习与实践,他们公别介绍了RGBA,RGB,opacity的用法,这里我们把这三个属性放在一起来考虑 ...

  9. ArcGIS和ENVI最新软件下载

    浏览的时候发现一位博主分享了很多版本很新的软件 在这里分享一下下载界面链接 https://www.ixxin.cn/software.html

  10. Interesting HDU - 5785 回文树

    题意: 找出所有[i,j]为回文串[j+1,k]也为回文串的i*k乘积之和. 题解: 设sum1[i] 为正着插入,到 i 的所有回文串的起始位置的前缀和,sum2[i] 表示反正插入的前缀和 ans ...