洛谷 P1129 BZOJ 1059 cogs 660 [ZJOI2007]矩阵游戏

简介: 题目描述 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏。矩阵游戏在一个N*N黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作: 行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色) 列交换操作:选择矩阵的任意两列,交换这两列(即交换对应格子的颜色) 游戏的目标,即通过若干次操作,使得方阵的主对角线(左上角到右下角的连线)上的格子均为黑色。

题目描述

小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);//cogs
    scanf("%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;
}

 

目录
相关文章
|
数据安全/隐私保护 计算机视觉
2024年2月国内如何快速注册OnlyFans最新小白教学
onlyfans软件是一个创立于2016年的订阅式社交媒体平台,创作者可以在自己的账号发布原创的照片或视频,并需要注意的是,网络上可能存在非法或不道德的应用将其设置成付费模式,若用户想查看则需要每月交费订阅。程序,建议你在使用互联网时保持警惕,并遵循相关法律法规。(现在p站没了,大家晚上懂得都懂啊)
2024年2月国内如何快速注册OnlyFans最新小白教学
|
小程序 API
小程序踩坑记- tabBar.list[3].selectedIconPath 大小超过 40kb
小程序踩坑记- tabBar.list[3].selectedIconPath 大小超过 40kb
316 0
|
Linux iOS开发 MacOS
brew - mac 下的 brew 切换为国内源
brew - mac 下的 brew 切换为国内源
4586 0
|
SQL Oracle 关系型数据库
Java连接各种数据库操作(mysql、oracle、postgresql、gbase、mongo)
Java连接各种数据库操作(mysql、oracle、postgresql、gbase、mongo)
651 0
|
NoSQL 数据可视化 关系型数据库
MongoDB提供的这些工具
【6月更文挑战第8天】MongoDB提供的这些工具
356 3
|
Web App开发 分布式计算 大数据
MaxCompute操作报错合集之配置归并节点,出现java.lang.NullPointerException: null错误提示,该怎么办
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
251 0
|
存储 缓存 分布式计算
阿里云服务器8核16G配置2024最新活动价格及选择建议参考
阿里云服务器8核16G配置有将近二十种实例规格可选,2024年,经济型e、通用算力型u1、计算型c7和计算型c8y实例8核16G配置的云服务器有优惠,价格最低的是经济型e实例,8核16G配置的活动价格只要3084.36元/1年。活动价格最高的计算型c7实例8核16G也只要6124.18元/1年起,下面是2024年截至目前阿里云服务器8核16G配置最新活动价格及选择建议参考。
阿里云服务器8核16G配置2024最新活动价格及选择建议参考
|
监控 安全 网络协议
中间件数据传输数据完整性
中间件保障数据完整性,采用加密防止篡改,加校验码检测准确性,启用重传机制应对丢失,记录日志便于追踪,备份数据以防丢失,通过可靠协议如TCP纠错,及定期安全审计与监控,确保系统稳定可靠。综合运用这些策略,可适应不同业务需求,优化数据传输安全性。
157 2
|
存储 JavaScript 前端开发
内存管理和内存泄露(闭包、作用域链)(一)
内存管理和内存泄露(闭包、作用域链)
113 0
|
传感器 消息中间件 弹性计算
IoT设备接入基础(一)|学习笔记
快速学习IoT设备接入基础(一)
IoT设备接入基础(一)|学习笔记

热门文章

最新文章