主要是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. maven环境的配置

    http://maven.oschina.net/help.html     --配置说明 http://maven.oschina.net/index.html#nexus-search;quick ...

  2. 关于ie中实现弹性盒模型-我的css

    css3中的弹性盒模型大家都不陌生,但是能否在ie6中实现呢?第三方库中涉及到的页少之又少,也有一部分css框架中支持各种布局,下面给出我用的盒模型样式(为了以后copy方便而已): /******* ...

  3. mysql备份数据库常见问题

    如果遇到mysqldump: unknown option '--no-beep'  ,可以加上 --no-dafaults 命令结尾无需分号 mysqldump --no-defaults -uro ...

  4. windows 2003 发布遇到问题---分析器错误消息: 未能加载类型“YWPT.MvcApplication”。

    问题如下: “/”应用程序中的服务器错误. ------------------------------------------------------------------------------ ...

  5. WebApi 异常处理解决方案

    1.继承ExceptionFilterAttribute类,重写OnException方法 public class WebApiExceptionFilterAttribute : Exceptio ...

  6. 【BZOJ3120】Line 矩阵乘法

    [BZOJ3120]Line Description Wayne喜欢排队……不对,是Wayne所在学校的校长喜欢看大家排队,尤其是在操场上站方阵.某日课间操时,校长童心大发想了一个极具观赏性的列队方案 ...

  7. 【BZOJ4443】[Scoi2015]小凸玩矩阵 二分+二分图最大匹配

    [BZOJ4443][Scoi2015]小凸玩矩阵 Description 小凸和小方是好朋友,小方给小凸一个N*M(N<=M)的矩阵A,要求小秃从其中选出N个数,其中任意两个数字不能在同一行或 ...

  8. PHP mysql 扩展库 操作mysql数据库步骤

    一.mysql 扩展库操作mysql数据库步骤如下: 1.获取连接 2.选择数据库 3.设置操作编码 4.发送指令(ddl数据定义/dml数据操作/dql数据查询/dtl数据事务控制) 5.接收返回的 ...

  9. js apply()、call() 使用参考

    引入,求一个数组的最大值,有这么一种快捷方法:Math.max.apply(null,arr); 但是最初看 JavaScript高级程序设计 的时候,没看懂,原文(斜体表示)如下: 每个函数都包含两 ...

  10. 160316、实时处理oracle数据库中表的数据变化

    http://blog.csdn.net/as339000204/article/details/45390727     近期接受项目需求,需要实时处理oracle数据库中表的数据变化,首先想到的是 ...