BZOJ1433或洛谷2055 [ZJOI2009]假期的宿舍

时间:2023-02-18 21:44:50

BZOJ原题链接

洛谷原题链接

对于每个需要床位的人向他能睡的床连边,然后就是二分图最大匹配模板了。

这里用匈牙利算法。

#include<cstdio>
#include<cstring>
using namespace std;
const int N = 55;
const int M = 1e4 + 10;
int fi[M], di[M], ne[M], mtc[M], l;
bool v[M], h[N], sc[N];
inline int re()
{
int x = 0;
char c = getchar();
bool p = 0;
for (; c < '0' || c > '9'; c = getchar())
p |= c == '-';
for (; c >= '0' && c <= '9'; c = getchar())
x = x * 10 + c - '0';
return p ? -x : x;
}
inline void add(int x, int y)
{
di[++l] = y;
ne[l] = fi[x];
fi[x] = l;
}
bool dfs(int x)
{
int i, y;
for (i = fi[x]; i; i = ne[i])
if (!v[y = di[i]])
{
v[y] = 1;
if (!mtc[y] || dfs(mtc[y]))
{
mtc[y] = x;
return true;
}
}
return false;
}
int main()
{
int i, j, n, t;
t = re();
while (t--)
{
n = re();
l = 0;
memset(fi, 0, sizeof(fi));
memset(mtc, 0, sizeof(mtc));
for (i = 1; i <= n; i++)
sc[i] = re();
for (i = 1; i <= n; i++)
sc[i] ? h[i] = re() : h[i] = re() ? 0 : 0;
int k = 0;
for (i = 1; i <= n; i++)
if (!sc[i] || (sc[i] && !h[i]))
k++;
for (i = 1; i <= n; i++)
{
if (!h[i] && sc[i])
add(i, i + n);
for (j = 1; j <= n; j++)
if (re() && !h[i] && sc[j])
add(i, j + n);
}
int s = 0;
for (i = 1; i <= n; i++)
{
memset(v, 0, sizeof(v));
if (dfs(i))
s++;
}
s ^ k ? printf("T_T\n") : printf("^_^\n");
}
return 0;
}

BZOJ1433或洛谷2055 [ZJOI2009]假期的宿舍的更多相关文章

  1. 洛谷2055 &lbrack;ZJOI2009&rsqb;假期的宿舍

    题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...

  2. 洛谷 2055 &lbrack;ZJOI2009&rsqb;假期的宿舍——二分图匹配

    题目:https://www.luogu.org/problemnew/show/P2055 #include<iostream> #include<cstdio> #incl ...

  3. 洛谷P2055 &lbrack;ZJOI2009&rsqb;假期的宿舍

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

  4. 洛谷——P2055 &lbrack;ZJOI2009&rsqb;假期的宿舍

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

  5. 洛谷 P2055 &lbrack;ZJOI2009&rsqb;假期的宿舍

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

  6. 洛谷P2055 &lbrack;ZJOI2009&rsqb;假期的宿舍 &lbrack;二分图最大匹配&rsqb;

    题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题.比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识. ...

  7. 洛谷P2055 &lbrack;ZJOI2009&rsqb;假期的宿舍 题解

    题目链接: https://www.luogu.org/problemnew/show/P2055 分析: 这道题比较简单,二分图的练习题(当然最大流同理). 易得我们可以将人放在一侧,床放在一侧. ...

  8. 洛谷&dollar;P2055&bsol; &lbrack;ZJOI2009&rsqb;&dollar; 假期的宿舍 最大流

    正解:最大流 解题报告: 传送门$QwQ$ 这种一看就很网络流鸭,直接说咋建图趴. 考虑把在校的人拆成人和床.$S$连向所有不回家的人,所有床连向$T$,认识的人之间人向床连边,跑个最大流就成. $o ...

  9. 2055 &lbrack;ZJOI2009&rsqb;假期的宿舍

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

随机推荐

  1. C&num;匿名函数的坑

    在for循环中catch索引 for (int i = 0; i < n; i++) { foo(() =>{ if (i == x) //这里的i始终都是最后一个... { //bala ...

  2. EF架构~XMLRepository仓储的实现

    回到目录 对于数据仓储大家应该都很熟悉了,它一般由几个仓储规范和实现它的具体类组成,而仓储的接口与架构本身无关,对于仓储的实现,你可以选择linq2Sql,EF,Nosql,及XML 等等,之前我介绍 ...

  3. swing复制文本框内容

    Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); //得到系统剪贴板 String text = jTex ...

  4. 有向图寻找&lpar;一个&rpar;奇环 -- find an oddcycle in directed graph

    /// the original blog is http://www.cnblogs.com/tmzbot/p/5579020.html , automatic crawling without l ...

  5. Hbernate映射类型

    对应oracle中的数据库:用timestamp

  6. 新手对css的浅识

    对于css的一个初步理解与认识 在最近的学习中接触到了之前自己从来都不曾想过的语言,C语言,html超文本标记语言等等,还有今天在这里我要进行分析的css,之前浏览过很多的网页,也曾想过这里面的秘密, ...

  7. qt动态更新界面的菜鸟代码,请指出

    qt简单界面更新代码(菜鸟级)(部分代码) self.timers_1=QtCore.QTimer(self) self.timers_1.timeout.connect(self.min_1) se ...

  8. linux&lowbar;Ubuntu 12&period;04 安装jdk

    1.下载jdk6jdk6下载地址为:http://download.java.net/jdk6/,根据操作系统的选择对应的安装包,我的是ubuntu 12.04 32bit的,所以下载的文件是jdk- ...

  9. jQuery选择器对应的DOM API ——选择元素

    英文原文:http://blog.garstasio.com/you-dont-need-jquery/selectors/愚人码头注: 原作者的写这文章的意图是让我们抛弃jQuery,You Don ...

  10. POJ-2570 Fiber Network---Floyd&plus;二进制表示集合

    题目链接: https://vjudge.net/problem/POJ-2570 题目大意: 一些公司决定搭建一个更快的网络,称为"光纤网".他们已经在全世界建立了许多站点,这 ...