Description

小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏。矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作:行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色)列交换操作:选择矩阵的任意行列,交换这两列(即交换对应格子的颜色)游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线)上的格子均为黑色。对于某些关卡,小Q百思不得其解,以致他开始怀疑这些关卡是不是根本就是无解的!!于是小Q决定写一个程序来判断这些关卡是否有解。
Input

第一行包含一个整数T,表示数据的组数。接下来包含T组数据,每组数据第一行为一个整数N,表示方阵的大小;接下来N行为一个N*N的01矩阵(0表示白色,1表示黑色)。
Output

输出文件应包含T行。对于每一组数据,如果该关卡有解,输出一行Yes;否则输出一行No。
Sample Input
2
2
0 0
0 1
3
0 0 1
0 1 0
1 0 0
Sample Output
No
Yes
【数据规模】
对于20%的数据,N ≤ 7
对于50%的数据,N ≤ 50
对于100%的数据,N ≤ 200

想了半天,最后手写了几个才想到

我们要选出n个点使得,两两没有公共行和列

所以用行和列做二分图匹配

如果最大匹配是n就输出Yes,否则输出No

 var
a:array[..,..]of byte;
link,flag:array[..]of byte;
n,p,i,t,time:byte; procedure init;
var
i,j:byte;
begin
read(n);
for i:= to n do
for j:= to n do
read(a[i,j]);
time:=;
for i:= to n do
begin
flag[i]:=;
link[i]:=;
end;
end; function path(x:byte):byte;
var
i:byte;
begin
for i:= to n do
if (a[x,i]=)and(flag[i]<>time) then
begin
flag[i]:=time;
if (link[i]=)or(path(link[i])=) then
begin
link[i]:=x;
exit();
end;
end;
exit();
end; procedure work;
var
i:byte;
begin
p:=;
for i:= to n do
begin
inc(time);
if path(i)= then inc(p)
else break;
end;
if p=n then writeln('Yes')
else writeln('No');
end; begin
read(t);
for i:= to t do
begin
init;
work;
end;
end.

1059: [ZJOI2007]矩阵游戏 - BZOJ的更多相关文章

  1. bzoj 1059: [ZJOI2007]矩阵游戏 二分图匹配

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1891  Solved: 919[Submit][Statu ...

  2. BZOJ 1059 [ZJOI2007]矩阵游戏

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2707  Solved: 1322[Submit][Stat ...

  3. bzoj 1059 [ZJOI2007]矩阵游戏(完美匹配)

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2993  Solved: 1451[Submit][Stat ...

  4. BZOJ 1059: [ZJOI2007]矩阵游戏( 匈牙利 )

    只要存在N个x, y坐标均不相同的黑格, 那么就一定有解. 二分图匹配, 假如最大匹配=N就是有解的, 否则无解 ------------------------------------------- ...

  5. BZOJ 1059 [ZJOI2007]矩阵游戏 (二分图最大匹配)

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5281  Solved: 2530[Submit][Stat ...

  6. BZOJ 1059: [ZJOI2007]矩阵游戏 匈牙利算法

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2351  Solved: 1156 题目连接 http:// ...

  7. 1059: [ZJOI2007]矩阵游戏

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2154  Solved: 1053[Submit][Stat ...

  8. 【BZOJ】1059: [ZJOI2007]矩阵游戏(二分图匹配)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1059 本题可以看出,无论怎样变化,在同一行和同一列的数永远都不会分手---还是吐槽,,我第一眼yy了 ...

  9. bzoj 1059: [ZJOI2007]矩阵游戏 [二分图][二分图最大匹配]

    Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行 ...

随机推荐

  1. Tomcat - 设置 HTTP 基本认证

    在 Tomcat 中设置 HTTP 基本认证的示例 在 $TOMCAT_HOME\conf\tomcat-users.xml 文件中配置角色和用户: <tomcat-users> < ...

  2. MyBatis(3.2.3) - One-to-many mapping

    In the sample domain model, a tutor can teach one or more courses. This means that there is a one-to ...

  3. Ehcache(2.9.x) - API Developer Guide, Cache Eviction Algorithms

    About Cache Eviction Algorithms A cache eviction algorithm is a way of deciding which element to evi ...

  4. Spring使用总结

    一.基础JAR包 spring-beans.jar spring-context.jar spring-core.jar spring-expression.jar 二.XML的配置 1.一级结构 & ...

  5. PDA库位商品出库适配算法

    功能描述 代码实现 算法需求 回到顶部 功能描述   在PDA上面,通过扫描订单号,查询该商品的款号,尺码,订单数:同时适配仓库库位商品[SKU],显示该商品所在库位,库存数量,适配数. 因为PDA界 ...

  6. jQuery中的getter和setter方法

    1.attr()方法是jQuery中用于HTML属性的getter/setter.一个相关函数是removeAttr(). 2.css()方法和attr()方法很类似,只是css()方法作用于元素的c ...

  7. node.js笔记——gulp

    1.全局安装 npm install gulp -g 2.安装到具体目录,并安装相应的自动化插件 npm install -save-dev gulp gulp-concat gulp-minify- ...

  8. 完美高仿精仿京东商城手机客户端android版源码

    完美高仿精仿京东商城手机客户端android版源码,是从安卓教程网那边转载过来的,这款应用源码非常不错的,也是一个非常优秀的应用源码的,希望能够帮到学习的朋友. _js_op> <igno ...

  9. 《APUE》第五章练习1

    题目:用setvbuf实现setbuf. 这两个函数都是改变流的缓冲模式的.函数原型如下: #include <stdio.h> void setbuf(FILE *fp, char *b ...

  10. mac下安装redis

    安装php_redis.so 首先用git从https://github.com/nicolasff/phpredis下载源码.然后依次执行以下命令 sudo /Applications/XAMPP/ ...