【题解】 [ZJOI2009]假期的宿舍 (二分图匹配)
Solution:
- 处理出床位、要留校的人(注意来访问的人一定住校),和人与人的关系(连边)
- 再接着就是二分图。
- 注意的就是连向的人必须是有床位的
- 还要注意的就是只用判断住校的同学
- 二分图板子都打错蠢死
bool find(int k){
for(int i=head[k];i!=0;i=edge[i].nxt){
int v=edge[i].to;//cout<<k<<' '<<v<<endl;
if(bed[v]!=1)continue;
if(!vis[v]){
vis[v]=true;
if(be[v]==-1||find(be[v])){be[v]=k;return true;}
}
}return false;
}
Code:
//It is coded by Ning_Mew on 3.15
#include<bits/stdc++.h>
using namespace std;
const int maxn=50+7;
int T,n,be[maxn],bed[maxn],stay[maxn];
bool vis[maxn];
int head[maxn],cnt=0;
struct Edge{
int nxt,to;
}edge[maxn*maxn];
void add(int from,int to){
edge[++cnt].nxt=head[from];
edge[cnt].to=to;
head[from]=cnt;
}
void clear(){
memset(head,0,sizeof(head));cnt=0;
memset(be,-1,sizeof(be));
memset(bed,0,sizeof(bed));
memset(stay,0,sizeof(stay));
memset(vis,false,sizeof(vis));
}
bool find(int k){
for(int i=head[k];i!=0;i=edge[i].nxt){
int v=edge[i].to;//cout<<k<<' '<<v<<endl;
if(bed[v]!=1)continue;
if(!vis[v]){
vis[v]=true;
if(be[v]==-1||find(be[v])){be[v]=k;return true;}
}
}return false;
}
void work(){
clear();
scanf("%d",&n);
for(int i=1;i<=n;i++)scanf("%d",&bed[i]);
for(int i=1;i<=n;i++){
scanf("%d",&stay[i]);
stay[i]=stay[i]^1;
if(bed[i]==0)stay[i]=1;
}
for(int i=1;i<=n;i++){
if(bed[i]==1)add(i,i);
for(int j=1;j<=n;j++){
int box;scanf("%d",&box);
if(box){add(i,j);}
}
}
for(int i=1;i<=n;i++){
if(stay[i]!=1)continue;
memset(vis,false,sizeof(vis));
if(find(i));else{printf("T_T\n");return;}
}
//for(int i=1;i<=n;i++)cout<<be[i]<<' ';cout<<endl;
printf("^_^\n");return;
}
int main(){
scanf("%d",&T);
for(int i=1;i<=T;i++)work();
return 0;
}
第一次用markdown,不晓得是什么鬼样子
【题解】 [ZJOI2009]假期的宿舍 (二分图匹配)的更多相关文章
- [ZJOI2009]假期的宿舍 二分图匹配匈牙利
[ZJOI2009]假期的宿舍 二分图匹配匈牙利 一个人对应一张床,每个人对床可能不止一种选择,可以猜出是二分图匹配. 床只能由本校的学生提供,而需要床的有住校并且本校和外校两种人.最后统计二分图匹配 ...
- BZOJ1433 ZJOI2009 假期的宿舍 二分图匹配
1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2375 Solved: 1005[Submit][Sta ...
- BZOJ1433 [ZJOI2009]假期的宿舍 二分图匹配 匈牙利算法
原文链接http://www.cnblogs.com/zhouzhendong/p/8372785.html 题目传送门 - BZOJ1433 题解 我们理一理题目. 在校的学生,有自己的床,还可以睡 ...
- P2055 [ZJOI2009]假期的宿舍[二分图匹配]
题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题. 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识 ...
- 洛谷 2055 [ZJOI2009]假期的宿舍——二分图匹配
题目:https://www.luogu.org/problemnew/show/P2055 #include<iostream> #include<cstdio> #incl ...
- [bzoj1433][ZJOI2009]假期的宿舍——二分图
题目大意 传送门 题解 显然是二分图匹配. 用一些方法建图就好了. 要注意的是: 本题有多组数据!!! 初始化一定要注意!!! 代码 #include <bits/stdc++.h> us ...
- 洛谷 P2055 [ ZJOI 2009 ] 假期的宿舍 —— 二分图匹配
题目:https://www.luogu.org/problemnew/show/P2055 二分图匹配: 注意要连边的话对方必须有床! 代码如下: #include<iostream> ...
- 洛谷P2055 [ZJOI2009]假期的宿舍 [二分图最大匹配]
题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...
- BZOJ1433[ZJOI2009]假期的宿舍——二分图最大匹配
题目描述 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回家,而C来看B,C与A不认识.我们假设每个人只能睡和自己直接认 ...
- 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% ...
随机推荐
- AbelSu玩Kotlin
Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者. Kotlin是由JetBrains创建的基于JVM的编程语言,IntelliJ正是JetBrain ...
- 带您详细解读分布式文件系统HDFS
一.HDFS的由来: 本地系统:一个节点作为系统,以前数据是存放在本地文件系统上的,但本地文件系统存在两个问题:1.本地节点存储容量不够大:2.本地节点会坏,数据不够安全.这时,人们开始利用闲置的计算 ...
- Redis Twemproxy
主从复制+哨兵解决了读性能和高可用问题,但没有解决写性能问题. Twemproxy将写请求分配到不同节点处理. Twemproxy是Twitter开源的一个redis和memcache代理服务器. 允 ...
- Maven的继承与聚合——多模块开发
一:Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理.尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块. 二:继承 ...
- 大数据入门第二十三天——SparkSQL(二)结合hive
一.SparkSQL结合hive 1.首先通过官网查看与hive匹配的版本 这里可以看到是1.2.1 2.与hive结合 spark可以通过读取hive的元数据来兼容hive,读取hive的表数据,然 ...
- # 20155337《网络对抗》Web基础
20155337<网络对抗>Exp8 Web基础 实践目标 1. 实践内容 (1).Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写 ...
- PostgreSQL索引页
磨砺技术珠矶,践行数据之道,追求卓越价值 [作者 高健@博客园 luckyjackgao@gmail.com] 本页目的,是起到索引其他所有本人所写文档的作用: 分类一:PostgreSQL基础 ...
- Promise 执行顺序
加深印象 setTimeout(function() { console.log("timeout-start"); }, 200) // 改为100呢 console.log(& ...
- SSIS 剖析数据流之:连接和查找转换
在SSIS的数据流组件中,SSIS引擎使用Merge Join组件和 Lookup组件实现TSQL语句中的inner join 和 outer join 功能,Lookup查找组件的功能更类似TSQL ...
- EF查询百万级数据的性能测试--单表查询
一.起因 个人还是比较喜欢EF的,毕竟不用写Sql,开发效率高,操作简单,不过总是听人说EF的性能不是很好,也看过别人做的测试,但是看了就以为真的是那样.但是实际上到底是怎么样,说实话我真的不知道. ...