主要是main()中的处理,接下来就是二分匹配的模板题了

#include<cstdio>
#include<cstring>
#define maxn 110
using namespace std;
int a[maxn][maxn],link[maxn];
int b[maxn],c[maxn];
bool vis[maxn];
int n,m,cnt,ans,T; bool find(int x)
{
for(int j=;j<=n;j++){
if(a[x][j]&&!vis[j]){
vis[j]=;//为了下一条语句中调用find做准备的,以免重复
if(!link[j]||find(link[j])){
link[j]=x;
return ;
}
}
}
return ;
} int main()
{
scanf("%d",&T);
while (T--){
memset(a,,sizeof(a));
memset(link,,sizeof(link));
scanf("%d",&n);
cnt=ans=;
for(int i=;i<=n;i++)
scanf("%d",&b[i]);
for(int i=;i<=n;i++){
scanf("%d",&c[i]);
if(!b[i]||(b[i]&&!c[i]))
cnt++;
}//cnt表示需要床位的学生人数
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
int x;
scanf("%d",&x);//i是本校生而且不回家或者i不是本校生但是i认识本校生j,j回不回家i都有可能睡j的床
if(x&&((b[i]&&!c[i])||!b[i])&&b[j])
a[i][j]=;//a[i][j]=1表示i可以睡j的床
}
if(b[i]&&!c[i])//自己是本校生而且自己不回家,那么自己可以睡自己的床
a[i][i]=;
}
for(int i=;i<=n;i++){
memset(vis,,sizeof(vis));
if(find(i))
ans++;
}
if(ans==cnt) printf("^_^\n");
else printf("T_T\n");
}
return ;
}

ZJOI 2009 假期的宿舍 最大匹配的更多相关文章

  1. [ZJOI 2009] 假期的宿舍

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1433 [算法] 二分图匹配[代码] #include<bits/stdc++. ...

  2. 洛谷 P2055 [ ZJOI 2009 ] 假期的宿舍 —— 二分图匹配

    题目:https://www.luogu.org/problemnew/show/P2055 二分图匹配: 注意要连边的话对方必须有床! 代码如下: #include<iostream> ...

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

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

  4. 2055 [ZJOI2009]假期的宿舍

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

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

    明显的二分图最大匹配. #include<cstdio> #include<cstring> #include<cctype> #include<algori ...

  6. 洛谷P2756飞行员配对方案问题 P2055假期的宿舍【二分图匹配】题解+代码

    洛谷 P2756飞行员配对方案问题 P2055假期的宿舍[二分图匹配] 飞行员配对方案问题 题目背景 第二次世界大战时期.. 题目描述 英国皇家空军从沦陷国征募了大量外籍飞行员.由皇家空军派出的每一架 ...

  7. BZOJ_1433_[ZJOI2009]假期的宿舍_二分图匹配

    BZOJ_1433_[ZJOI2009]假期的宿舍_二分图匹配 题意: 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回 ...

  8. bzoj 1433: [ZJOI2009]假期的宿舍

    1433: [ZJOI2009]假期的宿舍 Description Input Output Sample Input 1 3 1 1 0 0 1 0 0 1 1 1 0 0 1 0 0 Sample ...

  9. BZOJ-1433 假期的宿舍 最大流+基础建图

    网络流练习ing.. 1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1748 Solved: 765 [S ...

随机推荐

  1. strust2的Action中validateXxx方法的用法

    Struts2控制部分时常需要验证来自页面的信息是否合法,若在执行struts2中 public String Xxx()方法操作数据库之前需要验证,ActionSupport提供了一个很好的方法.X ...

  2. C语言字符数组和字符串

    用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ' ', 'p', 'r', 'o' ...

  3. Android测试:从零开始3—— Instrumented单元测试1

    Instrumented单元测试是指运行在物理机器或者模拟机上的测试,这样可以使用Android framework 的API和supporting API.这会在你需要使用设备信息,如app的Con ...

  4. windows安装oracle11g第二部

    Oracle 11g数据库安装及配置 安装Oracle数据库: 1)压缩包解压,双击运行win64_11gR2_database\database\setup.exe 2)输入电子邮件,点击“下一步” ...

  5. 【SharePoint 2010】SharePoint 2010开发方面的课堂中整理有关问题

    SharePoint 2010开发方面的课堂中整理有关问题陈希章 ares@xizhang.com1. 对于SharePoint的体系结构不甚清楚,觉得有点乱了解了就不会觉得乱了,请理解1) 场服务 ...

  6. if...else if...else和switch语句的注意点

    java if...else if...else 语句 if 语句后面可以跟 elseif…else 语句,这种语句可以检测到多种可能的情况. 使用 if,else if,else 语句的时候,需要注 ...

  7. C 语言开发初涉-01 简单学习

    尝试用C语言写windows程序: 简单的计算器 1.0版,仅用来熟悉C 开发windows的一些语法和语句用法 #include "stdafx.h" #include < ...

  8. lightoj1132—Summing up Powers (取膜技巧&&组合数应用)

    题目链接:https://vjudge.net/problem/LightOJ-1132 题目意思:(1K + 2K + 3K + ... + NK) % 232 矩阵快速幂的题目一般都很短,这道题也 ...

  9. Solidworks to Urdf to Sdf

    . The urdf using tree form that does not support parallel robots (close loop robots). . The sdf usin ...

  10. appium+python自动化测试真机测试时报错“info: [debug] Error: Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"]”

    刚开始启动服务时,弹出授权提示,以为是手机app权限问题,后来debug后,发现了一个警告日志:UiAutomator did not shut down fast enough, calling i ...