按要求连边,跑匈牙利

#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std; #define N 110 int T,n; int sc[N],go[N];
int a[N][N];
int ly[N],vis[N]; struct edge
{
int to,next;
}e[20010];
int head[N];
int cnt; int getint()
{
int w=0,q=0;
char c=getchar();
while ((c<'0' || c>'9') && c!='-')
c=getchar();
if (c=='-')
q=1,c=getchar();
while (c>='0' && c<='9')
w=w*10+c-'0',c=getchar();
return q?-w:w;
} void link(int x,int y)
{
e[++cnt]=(edge){y,head[x]};
head[x]=cnt;
} bool find(int x)
{
for (int i=head[x];i;i=e[i].next)
{
int t=e[i].to;
if (!vis[t])
{
vis[t]=1;
if (!ly[t] || find(ly[t]))
{
ly[t]=x;
return true;
}
}
}
return false;
} int main()
{
T=getint();
while (T--)
{
n=getint();
for (int i=1;i<=n*2;i++)
head[i]=0,ly[i]=0;
cnt=0;
for (int i=1;i<=n;i++)
sc[i]=getint();
for (int i=1;i<=n;i++)
{
go[i]=getint();
if (sc[i] && !go[i])
link(i,n+i);
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
a[i][j]=getint();
if (!sc[i] || (sc[i] && !go[i]))
{
for (int j=1;j<=n;j++)
if (a[i][j] && sc[j])
link(i,j+n);
}
}
int f=1;
for (int i=1;i<=n;i++)
if (!sc[i] || (sc[i] && !go[i]))
{
for (int j=1;j<=n*2;j++)
vis[j]=0;
if (!find(i))
{
f=0;
break;
}
}
if (f)
puts("^_^");
else
puts("T_T");
}
return 0;
}

  

【bzoj1433】[ZJOI2009]假期的宿舍的更多相关文章

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

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

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

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2286  Solved: 969[Submit][Stat ...

  3. bzoj1433 [ZJOI2009]假期的宿舍(最大流)

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1717  Solved: 754[Submit][Stat ...

  4. bzoj1433 [ZJOI2009]假期的宿舍 最大流

    [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3429  Solved: 1459[Submit][Status][D ...

  5. bzoj1433[ZJOI2009]假期的宿舍(匈牙利)

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2544  Solved: 1074 [Submit][St ...

  6. bzoj1433: [ZJOI2009]假期的宿舍(最大二分图匹配)

    1433: [ZJOI2009]假期的宿舍 题目:传送门 题解: 这题有点水 跑个二分图匹配就完事了(注意在校生不是一定都互相认识) 代码: #include<cstdio> #inclu ...

  7. BZOJ1433 [ZJOI2009]假期的宿舍 二分图匹配 匈牙利算法

    原文链接http://www.cnblogs.com/zhouzhendong/p/8372785.html 题目传送门 - BZOJ1433 题解 我们理一理题目. 在校的学生,有自己的床,还可以睡 ...

  8. BZOJ1433[ZJOI2009]假期的宿舍——二分图最大匹配

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

  9. [bzoj1433][ZJOI2009]假期的宿舍——二分图

    题目大意 传送门 题解 显然是二分图匹配. 用一些方法建图就好了. 要注意的是: 本题有多组数据!!! 初始化一定要注意!!! 代码 #include <bits/stdc++.h> us ...

  10. 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% ...

随机推荐

  1. Luogu【P3609】蹄子剪刀布(DP+滚动数组)

    题目链接 (突然高兴 又一次瞬间想出转移方程并一遍A掉!!233333(虽然从二叉苹果树那题开始我就发现我的方程好像跟别人不大一样 (所以这样就可以名正言顺的水题解了 设f[i][j][k]表示考虑F ...

  2. 学习系列 - 马拉车&扩展KMP

    Manacher(马拉车)是一种求最长回文串的线性算法,复杂度O(n).网上对其介绍的资料已经挺多了的,请善用搜索引擎. 而扩展KMP说白了就是是求模式串和主串的每一个后缀的最长公共前缀[KMP更像是 ...

  3. 什么是JNI?

    JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C和C++)

  4. Ubuntu Jdk卸载 Oracle Jdk安装

    完全卸载 移除所有 Java相关包 (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ): apt-get update apt-cache search java ...

  5. ftrace笔记

    mount -t debugfs nodev /sys/kernel/debug 在mount后,可以在debug目录下看到tracing目录,该目录包含了ftrace的控制与输出文件. (1) en ...

  6. yii 之增加数据

    模型代码: <?php namespace app\models; use yii\db\ActiveRecord; class Test extends ActiveRecord{ publi ...

  7. oracle内核学习总结

    http://blog.csdn.net/bcbobo21cn/article/category/3092145/1

  8. NRapid前言

    开发工具 Visual Studio 2017 数据库 SQL Server 2012 相关技术 Asp.net MVC

  9. send to instance already dealloc nil error

    这个是因为发送消息的对象已经被dealloc了,然后再次发送[release]请求就不行了.所以可以retain或者alloc对象 if (self.buttonsList) {            ...

  10. vim 精确匹配查找单词【转】

    删除文件中所有的空行:g/^\s*$/d 去掉所有的行尾空格::%s/\s\+$// 整个文件特定字符串的替换:%s/old_word/new_word/g 删除从当前行开始到最后一行的所有内容:., ...