题目描述

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

行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色)

列交换操作:选择矩阵的任意两列,交换这两列(即交换对应格子的颜色)

游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线)上的格子均为黑色。

对于某些关卡,小Q百思不得其解,以致他开始怀疑这些关卡是不是根本就是无解的!!于是小Q决定写一个程序来判断这些关卡是否有解。

输入输出格式

输入格式:

第一行包含一个整数T,表示数据的组数。

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

输出格式:

包含T行。对于每一组数据,如果该关卡有解,输出一行Yes;否则输出一行No。

输入输出样例

输入样例#1:

2
2
0 0
0 1
3
0 0 1
0 1 0
1 0 0

输出样例#1:

No
Yes

说明

对于20%的数据,N ≤ 7

对于50%的数据,N ≤ 50

对于100%的数据,N ≤ 200

解题思路

  把给的矩阵当邻接矩阵跑二分图最大匹配,如果存在完美匹配(匹配数等于n),则输出Yes,否则输出No(最近状态不太好,感觉这解释好敷衍啊……过几天填坑)

源代码

#include<cstdio>
#include<cstring>
#define QL(x) memset(x,0,sizeof(x))
int map[240][240]={0};
int woman[240]={0},vis[240]={0};
int t,n;
bool dfs(int u)
{for(int v=1;v<=n;v++){if(!map[u][v]) continue;if(vis[v]) continue;vis[v]=1;if(!woman[v]||dfs(woman[v])) {woman[v]=u;return 1;}}return 0;
}
int main()
{//freopen("qmatrix.in","r",stdin);//freopen("qmatrix.out","w",stdout);//cogsscanf("%d",&t);while(t--){QL(woman),QL(map);scanf("%d",&n);for(int i=1;i<=n;i++){for(int j=1,k;j<=n;j++){scanf("%d",&map[i][j]);}}int i=1;for(;i<=n;i++){QL(vis);if(!dfs(i)) {printf("No\n");break;}}if(i>n) printf("Yes\n");}return 0;
}

洛谷 P1129 BZOJ 1059 cogs 660 [ZJOI2007]矩阵游戏相关推荐

  1. 洛谷 P3320: bzoj 3991: LOJ 2182: [SDOI2015]寻宝游戏

    题目传送门:LOJ #2182. 题意简述: 一棵 \(n\) 个节点的树,边有边权. 每个点可能是关键点,每次操作改变一个点是否是关键点. 求所有关键点形成的极小联通子树的边权和的两倍. 题解: 有 ...

  2. 洛谷P1129 [ZJOI2007] 矩阵游戏 题解

    洛谷P1129 [ZJOI2007] 矩阵游戏 题解 题目链接:P1129 [ZJOI2007] 矩阵游戏 题意:给定一张有黑白棋子的正方形棋盘,问存不存在解法使得经过若干次交换行或列的操作后,左上角 ...

  3. 洛谷:P1129 [ZJOI2007] 矩阵游戏

    题目链接:P1129 [ZJOI2007] 矩阵游戏 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 解题思路: 首先不知道最大匹配数概念的可以看看这篇博客: (5条消息) 二分图及 ...

  4. 洛谷 P1129 [ZJOI2007]矩阵游戏 解题报告

    P1129 [ZJOI2007]矩阵游戏 题目描述 小\(Q\)是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个\(N*N\)黑白方阵进行(如同国际象棋一般 ...

  5. 洛谷 P1129 矩阵游戏

    洛谷 P1129 矩阵游戏 题目链接 题目描述 小 Q 是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个 n×n 黑白方阵进行(如同国际象棋一般,只是颜色是 ...

  6. bzoj 1059: [ZJOI2007]矩阵游戏(二分匹配)

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4762  Solved: 2269 [Submit][St ...

  7. bzoj1059: [ZJOI2007]矩阵游戏

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 4748  Solved: 2264 [Submit][St ...

  8. 洛谷:P1129 [ZJOI2007] 矩阵游戏(二分图最大匹配)

    洛谷:矩阵游戏 洛谷题解就挺好 目的是使得最终(1,1)(2,2)-(n,n)都有一个点 可以看作为,最终状态需要每 i 行和 i 列都存在一个匹配 建图方式:对于 i 行 j 列的1点,建一条 i ...

  9. 洛谷P1129: [ZJOI2007]矩阵游戏(二分图最大匹配)

    https://www.luogu.org/problemnew/show/P1129 题目描述 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏.矩阵游戏在一个N×N ...

  10. 洛谷 P2046 BZOJ 2007 海拔(NOI2010)

    题目描述 YT市是一个规划良好的城市,城市被东西向和南北向的主干道划分为n×n个区域.简单起见,可以将YT市看作 一个正方形,每一个区域也可看作一个正方形.从而,YT城市中包括(n+1)×(n+1)个 ...

最新文章

  1. db2安装包v10.5_LINUX安装db2V10.5步骤
  2. 屏幕旋转的处理方法,实现视图位置的变化
  3. 跨域(CORS)请求问题[No 'Access-Control-Allow-Origin' header is present on the requested resource]常见解决方案
  4. .NET Core开发实战(第11课:文件配置提供程序)--学习笔记
  5. php与ie通信,php 获取用户IP与IE信息程序
  6. Linux内存错误系统重启,linux服务器硬件报错,系统异常重启检测-MCElog
  7. Python内置库修炼——turtle绘图库指令大全
  8. 【mysql】悲观锁和乐观锁的实现原理
  9. 大学计算机二级的试题,大学计算机二级考试试题及其答案_..doc
  10. mysql id自动增长_MySQL中的6种约束,你掌握了几种?
  11. ASP.NET前端解决方案之一:Ext.Net入门随笔1
  12. Android 如何在一个Activity中合理地显示多种类型的checkBox
  13. Canal中间件学习总结
  14. FPS游戏自动枪械识别+压枪(以PUBG为例)
  15. VmPlayer上设置主机和windows虚拟机文件夹共享
  16. 怎么在html中加水印,如何在h5网页添加水印
  17. 发现尖叫--生物电体感
  18. 3D建模初学者必看!你想要的学习工具都在这了!
  19. Rockchip | 固件分区排列
  20. DevOps 工程师需要必备哪些技能?

热门文章

  1. Atitit mybatis快速开发 的sql api接口
  2. paip.oracle query export to insert sql
  3. paip.httpd.conf 是空的.txt
  4. (转)区块链:CITA
  5. 龙蜥社区首届理事大会圆满召开!14家理事代表出席
  6. 【储留香系列】如何构建一个拖垮公司的备份系统
  7. 蒋江伟:代码是我们最重要的资产!
  8. 毕设题目:Matlab优化分配
  9. 【三维路径规划】基于matlab改进的蝙蝠算法农用无人机三维路径规划【含Matlab源码 1514期】
  10. 【优化算法】寄生-捕食优化算法(PPA)【含Matlab源码 1445期】