洛谷 P1129 矩阵游戏

题目链接

题目描述

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

行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色)。
列交换操作:选择矩阵的任意两列,交换这两列(即交换对应格子的颜色)。
游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线)上的格子均为黑色。

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

输入格式

本题单测试点内有多组数据。

第一行包含一个整数 T,表示数据的组数,对于每组数据,输入格式如下:

第一行为一个整数,代表方阵的大小 n。 接下来 n 行,每行 n 个非零即一的整数,代表该方阵。其中 0 表示白色,1 表示黑色。

输出格式

对于每组数据,输出一行一个字符串,若关卡有解则输出 Yes,否则输出 No。

输入

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

输出

No

这题是一道典型的二分图匹配问题,我们不难发现只有每一行和每一列都恰好被匹配到时,才能符合题目条件。那么怎么建图呢?很简单,当行 iii 与列 jjj 的交点为1时可以在两者之间建一条边 g[i][j]=1g[i][j]=1g[i][j]=1,建图后套一个最大匹配模板即可,AC代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=205;int g[N][N],match[N],vis[N];
int t,n,x,y,k;int found(int x){for(int i=1;i<=n;i++){if(g[x][i] && !vis[i]){vis[i]=1;if(!match[i] || (found(match[i]))){match[i]=x;return 1;}}}return 0;
}void hungary(){int ans=0;fill(match,match+N,0);for(int i=1;i<=n;i++){fill(vis,vis+N,0);if(found(i)) ans++;}if(ans==n) puts("Yes");else puts("No");
}int main(){scanf("%d",&t);while(t--){scanf("%d",&n);fill(g[0],g[0]+N*N,0);for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){scanf("%d",&k);if(k) g[i][j]=1;}}hungary();}return 0;
}

洛谷 P1129 矩阵游戏相关推荐

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

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

  2. 洛谷 P2197 nim游戏

    洛谷 P2197 nim游戏 题目描述 甲,乙两个人玩Nim取石子游戏. nim游戏的规则是这样的:地上有n堆石子(每堆石子数量小于10000),每人每次可从任意一堆石子里取出任意多枚石子扔掉,可以取 ...

  3. 洛谷 P1558 色板游戏

    传送门:洛谷 P1558 色板游戏 算法分析:观察到数据范围:\(1\leq T\leq 30\) ,考虑使用二进制来进行状态压缩 将颜色\(x\)表示为 \(1<<(x-1)\) 即 \ ...

  4. 洛谷 P3041 视频游戏的连击Video Game Combos(AC自动机+拓扑排序+数位DP)

    洛谷 P3041 视频游戏的连击Video Game Combos 难度一般,不过这个数位DP其实应该叫做记忆化搜索 题意:玩游戏时可以通过按键组合打出combo技能:然后是已知N个combo的按键方 ...

  5. 洛谷P1722 矩阵Ⅱ (卡塔兰数)

    洛谷P1722 矩阵Ⅱ 卡塔兰数 题面 思路 代码 题面 给定一个1*(2n)的矩阵.现让你放入一样多的红色算筹和黑色算筹,使对于所有的i(1<=i<=2n),使第1~i格中红色算筹个数大 ...

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

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

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

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

  8. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  9. 洛谷——P1000 超级玛丽游戏

    P1000 超级玛丽游戏 题目背景 本题是洛谷的试机题目,可以帮助了解洛谷的使用. 建议完成本题目后继续尝试P1001.P1008. 另外强烈推荐新用户必读贴 题目描述 超级玛丽是一个非常经典的游戏. ...

最新文章

  1. 金额阿拉伯数字转换为中文大写
  2. 这样规范写代码,同事直呼“666”
  3. R语言t分布函数Student t distribution(dt, pt, qt rt )实战
  4. ISP PIPLINE (九_2) Denoise 之 time domain denoise
  5. NND年年回家这么难买火车票
  6. 【AI不惑境】学习率和batchsize如何影响模型的性能?
  7. 记一个mysql分页查询优化试验
  8. 编程语言注释方法大全
  9. 正则表达式提取器_C++11新特性7 - 正则表达式
  10. python性能分析工具模块_Python Profilers 分析器
  11. Python批量导入Excel文件中的不重复数据到SQLite数据库
  12. 《团队软件过程(修订版)》—第1章1.5节TSPi过程
  13. Qt4_发送和接收UDP数据报
  14. iframe异步加载技术及性能转
  15. Raspberry Pi 3安装配置Raspbian过程
  16. Unity 获得时间戳
  17. 毕业设计-ssm-气象雷达
  18. 非常有用的 windows CMD 命令大全
  19. 2017年支付宝五福活动的python生福脚本。
  20. CodeProject.AI 服务器:AI 最简单的方法

热门文章

  1. “十三五”电力科技重大发展方向及关键技术
  2. 2020-02-29
  3. 《写给大家看的设计书》读书笔记
  4. HDL语言三种描述方式--结构化描述方式、数据流描述方式、行为级描述方式
  5. 从头开始搭建kubernetes集群+istio服务网格(3)—— 搭建istio
  6. 基于SLAM融合构图的自主轮式仓储货运机器人技术说明
  7. 声纹采集是什么?标准声纹采集终端设备的作用是什么?
  8. 小米4c手机显示无服务器,小米4C手机无法开机变砖了怎么办
  9. Python 分类问题研究-Fisher线性判别
  10. 什么是差模干扰、共摸干扰?