【BZOJ 1433】 [ZJOI2009]假期的宿舍
1433: [ZJOI2009]假期的宿舍
Time Limit: 10 Sec Memory Limit: 162 MB
Submit: 1318 Solved: 575
[Submit][Status]
Description
![](http://www.lydsy.com:808/JudgeOnline/images/1432_1.jpg)
Input
![](http://www.lydsy.com:808/JudgeOnline/images/1432_2.jpg)
Output
![](http://www.lydsy.com:808/JudgeOnline/images/1432_3.jpg)
Sample Input
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 <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#define M 100+5
using namespace std;
int h[M],tot,v[M],my[M],sc[M],go[M],a[M][M],T,n;
struct edge
{int y,ne;
}e[20000+5];
void read(int &tmp)
{tmp=0;char ch=getchar();int fu=1;for (;ch<'0'||ch>'9';ch=getchar())if (ch=='-') fu=-1;for (;ch>='0'&&ch<='9';ch=getchar())tmp=tmp*10+ch-'0';tmp*=fu;
}
void Addedge(int x,int y)
{e[++tot].y=y;e[tot].ne=h[x];h[x]=tot;
}
bool dfs(int x)
{for (int i=h[x];i;i=e[i].ne){int y=e[i].y;if (!v[y]){v[y]=1;if (!my[y]||dfs(my[y])){my[y]=x;return true;}}}return false;
}
int main()
{read(T);while (T--){read(n);for (int i=1;i<=n*2;i++)h[i]=0,my[i]=0;tot=0;for (int i=1;i<=n;i++)read(sc[i]);for (int i=1;i<=n;i++){read(go[i]);if (sc[i]&&!go[i]) Addedge(i,n+i);}for (int i=1;i<=n;i++){for (int j=1;j<=n;j++)read(a[i][j]);if (!sc[i]||(sc[i]&&!go[i])){for (int j=1;j<=n;j++)if (a[i][j]&&sc[j]) Addedge(i,j+n);}}int f=1;for (int i=1;i<=n;i++)if (!sc[i]||(sc[i]&&!go[i])){for (int j=1;j<=n*2;j++)v[j]=0;if (!dfs(i)) {f=0;break;}}if (f) puts("^_^");else puts("T_T");}return 0;
}
感悟:
这道题0分了好多次,发现是连边的问题:
如果两个人认识,那么对方必须是本校学生才能和他对应的床连边。。
【BZOJ 1433】 [ZJOI2009]假期的宿舍相关推荐
- 1433. [ZJOI2009]假期的宿舍【二分图】
Description 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回家,而C来看B,C与A不认识.我们假设每个人只能 ...
- BZOJ1433 ZJOI2009 假期的宿舍 二分图匹配
1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2375 Solved: 1005 [Submit][S ...
- 二分图 洛谷P2055 [ZJOI2009]假期的宿舍
[ZJOI2009]假期的宿舍 题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 ...
- BZOJ 1433 Luogu P2055 [ZJOI2009]假期的宿舍 匈牙利算法
刚学了匈牙利正好练练手(我不会说一开始我写错了)(怕不是寒假就讲了可是我不会) 把人看做左部点,床看作右部点 建图:(!!在校相当于有床,不在校相当于没有床 但是要来学校) 1.在校的 不走的人 自己 ...
- 【BZOJ 1433】[ZJOI2009]假期的宿舍
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把每个人都分为左边和右边两个人 xi,yi 如果第i个人不回家或者是外校学生 那么它可以和他认识的人连一条容量为1的边(前提是这个认 ...
- [ZJOI2009]假期的宿舍
https://www.luogu.org/problemnew/show/P2055 https://www.lydsy.com/JudgeOnline/problem.php?id=1433 题解 ...
- P2055 [ZJOI2009]假期的宿舍
有点烧脑... 这道题是求二分图完美匹配.没看请题意还不知道是求完美匹配,结果爆零. 人一共分三种: 在校学生 && 回家.这类人拥有一个床,但是不睡. 在校学生 && ...
- BZOJ1433 [ZJOI2009]假期的宿舍 - 二分图匹配
题解 一道裸的二分图匹配,稍微有一点细节需要注意, 但是非常裸= = 本校并且住校的向自己的床和 自己认识的并且本校的人的床连边 离校的不需要向外连边 不是本校的就和自己认识的 并且是本校的人的床连边 ...
- bzoj1433: [ZJOI2009]假期的宿舍
一道匈牙利的裸题,将床和人建边,纯属复习模版了(然而就是写错了) 注意一下0和1的表示. #include<cstdio> #include<cstring> using na ...
- P2055 [ZJOI2009]假期的宿舍(二分图匹配)
题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题. 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识 ...
最新文章
- python有道翻译接口-Python通过调用有道翻译api实现翻译功能示例
- android 保存ArrayListObject至SharedPreferences
- php 连接sap rfc 乱码,[RFC] sap rfc调用时判断连接状态
- eclipse创建springBoot工程
- 面向云数据库,超低延迟文件系统PolarFS诞生了 1
- 创建数据库company写出语句_MySQL中最实用的SQL语句
- 使用python给微信推送信息(一)
- ACM河南第八届省赛题
- 苹果测试版最新发行说明,iOS 15.4支持戴口罩解锁,Dropbox和OneDrive的云存储功能被打破
- 20张图片梳理工业软件全貌
- iOS 【使用自定义字体-苹方字体】
- 面试中可以提问面试官的问题
- wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例
- python的flask框架
- js中if到底该如何判断变量为空?
- final变量存在哪 java_使用Java中的final变量需要注意的地方。
- 51单片机16×16点阵led屏滚动显示+protues仿真+按键功能(史上最全)
- android gis采集,Android GIS数据采集软件介绍 ---穆采
- MOXA官网下载PCommLite的方法
- 创新奇智AI商业化落地能力彰显,完成逾4亿元A和A+轮融资...
热门文章
- Preparing transaction:done Verifying transaction:failed RemoveError:‘requests‘ is a dependency of **
- 微信开发者工具调试H5项目报错:XXXXfail, the permission value is offline verifying解决方案
- 文件服务器怎么设置文件夹大小,鸿蒙桌面图片怎么设置大小?鸿蒙桌面图标、小组件,文件夹变大变小设置教程...
- 二阶魔方万能还原公式_二阶魔方复原方法
- 马化腾是该全面反思腾讯战略了:吃老本不能让腾讯变得伟大!
- PCL点云处理之计算三维向量夹角(六十五)
- matlab fft 相位,从相位和幅度获取傅立叶变换 – Matlab
- 如何计算机网络打印机,如何共享网络打印机 共享网络打印机教程详解
- 启动计算机键盘没反应,为什么键盘没反应了 键盘没反应原因分析及解决方法...
- 使用计算机键盘的基本步骤,电脑如何用键盘开机_台式电脑键盘开机方法-win7之家...