【题解】 [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% ...
随机推荐
- 在AspNetCore 中 使用Redis实现分布式缓存 (转载)
文章概念描述 分布式缓存描述:分布式缓存重点是在分布式上,相信大家接触过的分布式有很多中,像分布式开发,分布式部署,分布式锁.事物.系统 等有很多.使我们对分布式本身就有一个很明确的认识,分布式就是有 ...
- 大数据入门第二十一天——scala入门(二)并发编程Akka
一.概述 1.什么是akka Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable).弹性的(Resilient).快速响应的(Responsive)应用程序的平台. 更多入门的基 ...
- go语言之行--文件操作、命令行参数、序列化与反序列化详解
一.简介 文件操作对于我们来说也是非常常用的,在python中使用open函数来对文件进行操作,而在go语言中我们使用os.File对文件进行操作. 二.终端读写 操作终端句柄常量 os.Stdin: ...
- javaScript之jQuery框架
一.jQuery简介 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗旨 ...
- 2017-2018 Exp1 PC平台逆向破解 20155214
目录 Exp1 PC平台逆向破解 实验内容 知识点 官方源 中科大源 上海交大的源 新加坡源 debain源 debian安全更新源 163源的地址 阿里云kali源 启发 评论 Exp1 PC平台逆 ...
- 课程设计个人报告——基于ARM实验箱的Android交友软件的设计与实现
个人贡献 熟悉试验箱各元件功能以及连接组装试验箱 一.实验内容 研究实验箱串口.USB线的调通连接 二.实践步骤 1.打开实验箱,首先了解各元件功能 这个是LTE模块,也叫4G模块,具体的作用是硬件将 ...
- Linux环境中Qt程序的手工发布
Linux环境中Qt程序的手工发布
- DeepFM算法解析及Python实现
1. DeepFM算法的提出 由于DeepFM算法有效的结合了因子分解机与神经网络在特征学习中的优点:同时提取到低阶组合特征与高阶组合特征,所以越来越被广泛使用. 在DeepFM中,FM算法负责对一阶 ...
- MySQL主从报错1594
一.主从报错 Relay log read failure 问题原因,MySQL主从使用的是kvm虚拟机,物理机超分严重,在负载高的情况下会kill掉占用资源最多的虚拟机,再启动后导致主从失败 mys ...
- 【Orleans开胃菜系列1】不要被表象迷惑
[Orleans开胃菜系列1]不要被表象迷惑 /** * prism.js Github theme based on GitHub's theme. * @author Sam Clarke */ ...