1433: [ZJOI2009]假期的宿舍

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 1318  Solved: 575
[Submit][Status]

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 <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]假期的宿舍相关推荐

  1. 1433. [ZJOI2009]假期的宿舍【二分图】

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

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

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

  3. 二分图 洛谷P2055 [ZJOI2009]假期的宿舍

    [ZJOI2009]假期的宿舍 题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 ...

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

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

  5. 【BZOJ 1433】[ZJOI2009]假期的宿舍

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把每个人都分为左边和右边两个人 xi,yi 如果第i个人不回家或者是外校学生 那么它可以和他认识的人连一条容量为1的边(前提是这个认 ...

  6. [ZJOI2009]假期的宿舍

    https://www.luogu.org/problemnew/show/P2055 https://www.lydsy.com/JudgeOnline/problem.php?id=1433 题解 ...

  7. P2055 [ZJOI2009]假期的宿舍

    有点烧脑... 这道题是求二分图完美匹配.没看请题意还不知道是求完美匹配,结果爆零. 人一共分三种: 在校学生 && 回家.这类人拥有一个床,但是不睡. 在校学生 && ...

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

    题解 一道裸的二分图匹配,稍微有一点细节需要注意, 但是非常裸= = 本校并且住校的向自己的床和 自己认识的并且本校的人的床连边 离校的不需要向外连边 不是本校的就和自己认识的 并且是本校的人的床连边 ...

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

    一道匈牙利的裸题,将床和人建边,纯属复习模版了(然而就是写错了) 注意一下0和1的表示. #include<cstdio> #include<cstring> using na ...

  10. P2055 [ZJOI2009]假期的宿舍(二分图匹配)

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

最新文章

  1. python有道翻译接口-Python通过调用有道翻译api实现翻译功能示例
  2. android 保存ArrayListObject至SharedPreferences
  3. php 连接sap rfc 乱码,[RFC] sap rfc调用时判断连接状态
  4. eclipse创建springBoot工程
  5. 面向云数据库,超低延迟文件系统PolarFS诞生了 1
  6. 创建数据库company写出语句_MySQL中最实用的SQL语句
  7. 使用python给微信推送信息(一)
  8. ACM河南第八届省赛题
  9. 苹果测试版最新发行说明,iOS 15.4支持戴口罩解锁,Dropbox和OneDrive的云存储功能被打破
  10. 20张图片梳理工业软件全貌
  11. iOS 【使用自定义字体-苹方字体】
  12. 面试中可以提问面试官的问题
  13. wiki中文文本语料下载,在维基百科中文语料训练Word2vec and doc2vec 文本向量化代码示例
  14. python的flask框架
  15. js中if到底该如何判断变量为空?
  16. final变量存在哪 java_使用Java中的final变量需要注意的地方。
  17. 51单片机16×16点阵led屏滚动显示+protues仿真+按键功能(史上最全)
  18. android gis采集,Android GIS数据采集软件介绍 ---穆采
  19. MOXA官网下载PCommLite的方法
  20. 创新奇智AI商业化落地能力彰显,完成逾4亿元A和A+轮融资...

热门文章

  1. Preparing transaction:done Verifying transaction:failed RemoveError:‘requests‘ is a dependency of **
  2. 微信开发者工具调试H5项目报错:XXXXfail, the permission value is offline verifying解决方案
  3. 文件服务器怎么设置文件夹大小,鸿蒙桌面图片怎么设置大小?鸿蒙桌面图标、小组件,文件夹变大变小设置教程...
  4. 二阶魔方万能还原公式_二阶魔方复原方法
  5. 马化腾是该全面反思腾讯战略了:吃老本不能让腾讯变得伟大!
  6. PCL点云处理之计算三维向量夹角(六十五)
  7. matlab fft 相位,从相位和幅度获取傅立叶变换 – Matlab
  8. 如何计算机网络打印机,如何共享网络打印机 共享网络打印机教程详解
  9. 启动计算机键盘没反应,为什么键盘没反应了 键盘没反应原因分析及解决方法...
  10. 使用计算机键盘的基本步骤,电脑如何用键盘开机_台式电脑键盘开机方法-win7之家...