1433: [ZJOI2009]假期的宿舍

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 2544  Solved: 1074

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

/*
看这个题,不难发现是二分图,裸的匈牙利。
也很好想到要把人和床分开建图。
但是容易吧不在校的和在校的人分开。其实不该分开,建图是没有任何影响的
有一点要注意,很容易忽略把在校的人和自己的床建边,忘了就WA了!
预处理稍麻烦。
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 101 using namespace std;
int T,n,m,k,ans,cnt1,cnt2;
int bed[maxn],vis[maxn],Link[maxn],Judge[maxn],people[maxn];
int a[maxn][maxn]; inline int insert()
{
int x=,f=;char c=getchar();
while(c>''||c<''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
} inline void first()
{
ans = ;
memset(a,,sizeof(a));
memset(bed,,sizeof(bed));
memset(Judge,,sizeof(Judge));
memset(people,,sizeof(people));
memset(Link,,sizeof(Link));
cnt1=cnt2=;
} bool hungarian(int x)
{
for(int i=;i<=cnt1;i++)
{
if(a[x][bed[i]]&&!vis[bed[i]])
{
vis[bed[i]]=;
if(!Link[bed[i]]||hungarian(Link[bed[i]]))
{
Link[bed[i]]=x;
return true;
}
}
}
return false;
} int main()
{
T=insert();
while(T--)
{
first();
n=insert();
for(int i=;i<=n;i++)
Judge[i]=insert();
for(int i=;i<=n;i++)
{
int tmp;
tmp=insert();
if(Judge[i])
{
if(tmp) bed[++cnt1]=i;//不在校的
else bed[++cnt1]=people[++cnt2]=i;//在校的
}
else people[++cnt2]=i;//来探望的
}
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
a[i][j]=insert();
for(int i=;i<=n;i++)
if(Judge[i]) a[i][i]=;//自己的床
for(int i=;i<=cnt2;i++)
{
memset(vis,,sizeof(vis));
if(hungarian(people[i]))//if后面又打成了分号,罚自己中午多吃一个馒头2333
ans++;
}
if(cnt2>cnt1) ans=-;
if (ans == cnt2)
printf("^_^\n");
else
printf("T_T\n");
}
return ;
}
 

[

bzoj1433[ZJOI2009]假期的宿舍(匈牙利)的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. BZOJ 1433 && Luogu P2055 [ZJOI2009]假期的宿舍 匈牙利算法

    刚学了匈牙利正好练练手(我不会说一开始我写错了)(怕不是寒假就讲了可是我不会) 把人看做左部点,床看作右部点 建图:(!!在校相当于有床,不在校相当于没有床 但是要来学校) 1.在校的 不走的人 自己 ...

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

    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% ...

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

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

随机推荐

  1. 【解题报告】洛谷 P2571 [SCOI2010]传送带

    [解题报告]洛谷 P2571 [SCOI2010]传送带今天无聊,很久没有做过题目了,但是又不想做什么太难的题目,所以就用洛谷随机跳题,跳到了一道题目,感觉好像不是太难. [CSDN链接](https ...

  2. python lambda简易使用

    基本格式 lambda 变量名:函数表达式 ①直接使用 f=lambda x:x**2 f(3) ②设置函数列表 l=[lambda x:x**2, lambda x:x**3, lambda x:x ...

  3. centos 7桌面和命令行转行

    CentOS7图形界面与命令行界面(终端)切换(1)CentOS7 在图形界面进入dos界面 :ctrl+alt+F6 dos界面进入图形界面:ctrl+alt+F2 本机用的这个命令: (2)Cen ...

  4. Springboot2.0中jpa默认创建的mysql表为myisam引擎问题

    使用Springboot2.0后,使用jpa操作mysql数据库时,默认创建的表的引擎是myisam,myisam是不能加外键的,找了一些资源,最终可以用此方法解决! yml格式: spring: j ...

  5. Struts2输入错误处理

    1.Action类继承ActionSupport父类,将result的name属性设置为<result name="input">/inputError.jsp< ...

  6. Promise对象和回调函数,解决异步数据传递问题

    下面的代码例子,均已小程序的异步请求数据为案例来说明 1.利用回调函数,来解决异步数据传递问题 异步操作api.js const getBooks = (url, callback) => { ...

  7. 聊聊餐饮: 2016年,是我做生意9年来,最差的1年 by某老板

    晚上忙完事,在小区里点了个菜.  今年在这个小店点菜,基本没有等过.  比较好奇,就问了下老板,最近怎么没人. 经常在这个店吃饭,老板就和我多聊了几句. 2016年,是我做生意9年来,最差的1年.还好 ...

  8. oc门的设计思路

    oc门,又称集电极开路门,Open Collector. mc1413bd就是这样一款oc门,在网上听说又叫uln2003a. 1.其符号是: 2.内部的组成就是NPN型的达林顿管 用非门的意思,我的 ...

  9. java 反射运用

    一,获取私有的属性,方法,构造器(俗名:暴力反射) 现有一个类,属性,方法,构造器均为私有的,如何创建实例对象,更该属性值,调用方法? public class Student { private S ...

  10. java 日历计算农历和节假日的工具类

    背景 业务需求需要后端提供这样的接口,网上找了很多java代码例子,虽然功能实现了 但是不完善,特别是节日那一块儿.然后百度发现有这样的插件,但是信息也是java后端提供的非js 然后在开源js插件找 ...