1433. [ZJOI2009]假期的宿舍【二分图】
Description
Input
Output
Sample Input
3
1 1 0
0 1 0
0 1 1
1 0 0
1 0 0
Sample Output
^_^
裸的二分图匹配……没什么难度
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- using namespace std;
- struct node
- {
- int to,next;
- } edge[];
- int a[],Ans[],head[],num_edge,used[],NOW;
- void add(int u,int v)
- {
- edge[++num_edge].to=v;
- edge[num_edge].next=head[u];
- head[u]=num_edge;
- }
- bool find(int x)
- {
- for (int i=head[x]; i!=; i=edge[i].next)
- {
- if (used[edge[i].to]!=NOW)
- {
- used[edge[i].to]=NOW;
- if (Ans[edge[i].to]== || find(Ans[edge[i].to]))
- {
- Ans[edge[i].to]=x;
- return true;
- }
- }
- }
- return false;
- }
- int main()
- {
- int T;
- scanf("%d",&T);
- while (T--)
- {
- int Cnt=,n,x,T,Sum=;
- memset(edge,,sizeof(edge));
- memset(used,,sizeof(used));
- memset(Ans,,sizeof(Ans));
- memset(head,,sizeof(head));
- num_edge=;
- scanf("%d",&n);
- for (int i=;i<=n;++i)
- scanf("%d",&a[i]);
- for (int i=;i<=n;++i)
- {
- scanf("%d",&x);
- if (a[i]== && x==)
- a[i]=;
- }
- for (int i=;i<=n;++i)
- {
- if (a[i]==) add(i,i),++Sum;
- if (a[i]==) ++Sum;
- for (int j=;j<=n;++j)
- {
- scanf("%d",&x);
- if (x== && (a[i]== || a[i]==) && a[j]!=)
- add(i,j);
- }
- }
- for (int i=;i<=n;++i)
- if (a[i]== || a[i]==)
- {
- NOW=i;
- if (find(i))
- ++Cnt;
- }
- if (Cnt==Sum)
- printf("^_^\n");
- else
- printf("T_T\n");
- }
- }
1433. [ZJOI2009]假期的宿舍【二分图】的更多相关文章
- BZOJ1433 ZJOI2009 假期的宿舍 二分图匹配
1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2375 Solved: 1005[Submit][Sta ...
- 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 ...
- 1433: [ZJOI2009]假期的宿舍
1433: [ZJOI2009]假期的宿舍 链接 分析: 直接网络流,看是否满足即可. S向每个有需要的人连边,有床的向T连边,认识的人之间互相连边. 代码: #include<cstdio&g ...
- bzoj 1433: [ZJOI2009]假期的宿舍 -- 最大流
1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec Memory Limit: 162 MB Description Input Output Sample Input ...
- [ZJOI2009]假期的宿舍 二分图匹配匈牙利
[ZJOI2009]假期的宿舍 二分图匹配匈牙利 一个人对应一张床,每个人对床可能不止一种选择,可以猜出是二分图匹配. 床只能由本校的学生提供,而需要床的有住校并且本校和外校两种人.最后统计二分图匹配 ...
- 洛谷P2055 [ZJOI2009]假期的宿舍 [二分图最大匹配]
题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...
- BZOJ1433 [ZJOI2009]假期的宿舍 二分图匹配 匈牙利算法
原文链接http://www.cnblogs.com/zhouzhendong/p/8372785.html 题目传送门 - BZOJ1433 题解 我们理一理题目. 在校的学生,有自己的床,还可以睡 ...
- BZOJ1433[ZJOI2009]假期的宿舍——二分图最大匹配
题目描述 学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如A 和B都是学校的学生,A要回家,而C来看B,C与A不认识.我们假设每个人只能睡和自己直接认 ...
- BZOJ 1433 [ZJOI2009]假期的宿舍(网络流)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1433 [题目大意] 在校学生有自己的床,外校的则没有,如果两个同学相互认识,则可以借用 ...
随机推荐
- python可视化基础
常用的python可视化工具包是matplotlib,seaborn是在matplotlib基础上做的进一步封装.入坑python可视化,对有些人来说如同望山跑死马,心气上早输了一节.其实学习一门新知 ...
- HashMap概述及其三种遍历方式
一.HashMap概述: 1.HashMap是一个散列表,它存储的是键值对(key-value)映射: 2.HashMap继承AbstractMap,实现了Map,Cloneable,Serializ ...
- HDU 2588 GCD------欧拉函数变形
GCD Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- windows多线程窗口程序设计
掌握windows基于消息驱动的窗口应用程序设计的基本方法,掌握窗口程序资源的概念与设计,掌握常用的消息的程序处理方法,掌握文字图形输出相关函数编程.掌握设计的基本方法(选项),掌握时钟消息设计动画程 ...
- 浅谈TCP/IP(new 常见面试问题)
1. TCP/IP重传机制,如何保证消息读到一个完整内容再反序列化 2. TCP四次回收比三次握手多了什么操作,什么时候会进入Time_await状态 3.
- redis事务报错No ongoing transaction. Did you forget to call multi?
场景:需要存两条数据到redis中,并且两条要么都存要么都不存,需要事务来控制 Spring Data Redis的RedisTemplate提供了MULTI.EXEC命令进行封装,远看可以解决问题, ...
- JS判断客户端是否是iOS或者Android端
通过判断浏览器的userAgent,用正则来判断手机是否是 IOS 和 Android 客户端. 代码如下: (function(){ var u = navigator.userAgent; var ...
- CSS代码缩写
盒模型代码简写 还记得在讲盒模型时外边距(margin).内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左.具体应用在margin和paddin ...
- python函数之调用函数
调用函数 python中内置了许多函数,我们可以直接调用,但需要注意的是参数的个数和类型一定要和函数一致,有时候不一致时,可以进行数据类型转换 1.abs()函数[求绝对值的函数,只接受一个参数] # ...
- C# SqlConnection连接sql server
try { SqlConnection conn = new SqlConnection(); conn.ConnectionString = "Data Source=127.0.0.1; ...