AcWing 703. 数独检查

**数独是一种流行的单人游戏。
目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字。
每个9x9矩阵在游戏开始时都会有部分数字已经给出,通常有一个独特的解决方案。
1.png2.png

给定完成的N2∗N2数独矩阵,你的任务是确定它是否是有效的解决方案。
有效的解决方案必须满足以下条件:
每行包含从1到N2的每个数字,每个数字一次。
每列包含从1到N2的每个数字,每个数字一次。
将N2∗N2矩阵划分为N2个非重叠N∗N子矩阵。 每个子矩阵包含从1到N2的每个数字,每个数字一次。
你无需担心问题的唯一性,只需检查给定矩阵是否是有效的解决方案即可。**

输入格式
第一行包含整数T,表示共有T组测试数据。
每组数据第一行包含整数N。
接下来N2行,每行包含N2个数字(均不超过1000),用来描述完整的数独矩阵。

输出格式
每组数据输出一个结果,每个结果占一行。
结果表示为“Case #x: y”,其中x是组别编号(从1开始),如果给定矩阵是有效方案则y是Yes,否则y是No。

数据范围
1≤T≤100,
3≤N≤6

输入样例:
3
3
5 3 4 6 7 8 9 1 2
6 7 2 1 9 5 3 4 8
1 9 8 3 4 2 5 6 7
8 5 9 7 6 1 4 2 3
4 2 6 8 5 3 7 9 1
7 1 3 9 2 4 8 5 6
9 6 1 5 3 7 2 8 4
2 8 7 4 1 9 6 3 5
3 4 5 2 8 6 1 7 9
3
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
3
5 3 4 6 7 8 9 1 2
6 7 2 1 9 5 3 4 8
1 9 8 3 4 2 5 6 7
8 5 9 7 6 1 4 2 3
4 2 6 8 999 3 7 9 1
7 1 3 9 2 4 8 5 6
9 6 1 5 3 7 2 8 4
2 8 7 4 1 9 6 3 5
3 4 5 2 8 6 1 7 9

输出样例:
Case #1: Yes
Case #2: No
Case #3: No

代码如下:

#include<iostream>
#include <cstring>
using namespace std;
const int N = 40;
int a[N][N];
bool st[N];
int n,m,cnt;
bool check_row()
{for (int i = 0;i<m;i++){memset(st,0,sizeof(st));for (int j = 0;j<m;j++){int t = a[i][j];if (t <1 || t > m) return false;if (st[t]) return false;st[t] = true;}}return true;
}bool check_col()
{for (int i = 0;i<m;i++){memset(st,0,sizeof(st));for (int j = 0;j<m;j++){int t = a[j][i];if (t <1 || t > m) return false;if (st[t]) return false;st[t] = true;}}return true;
}bool check_cell()
{for (int i = 0;i<m;i+=n)for(int j = 0;j<m;j+=n){memset(st,0,sizeof(st));for (int dx = 0;dx<n;dx++)for(int dy = 0;dy<n;dy++){int t = a[i+dx][j+dy];if (t < 1 || t > m) return false;if (st[t]) return false;st[t] = true;}}return true;
}int main()
{cin>>cnt;for (int i = 1;i<=cnt;i++){cin>>n;m = n*n;for (int x = 0;x<m;x++)for (int y = 0;y<m;y++)cin>>a[x][y];if (check_row() &&check_col() && check_cell()){printf("Case #%d: Yes\n",i);}else{printf("Case #%d: No\n",i);}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pdf文件内容查看器 -- 采用wpf开发

前言 pdf是一种应用非常广的版式文档格式&#xff0c;已成为事实上的国际标准。关于pdf格式的文章汗牛充栋&#xff0c;本文也是关于pdf格式的文章&#xff0c;但是本文不是纸上谈兵&#xff1b;本人这几周一直研究pdf格式内容&#xff0c;不但对pfd格式的内容有所了解&#xf…

​WeihanLi.Npoi 根据模板导出Excel

WeihanLi.Npoi 根据模板导出ExcelIntro原来的导出方式比较适用于比较简单的导出&#xff0c;每一条数据在一行&#xff0c;数据列虽然自定义程度比较高&#xff0c;如果要一条数据对应多行就做不到了&#xff0c;于是就想支持根据模板导出&#xff0c;在 1.8.0 版本中引入了根据…

UC浏览器如何开启html5,如何开启手机uc浏览器中的极速模式

如何开启手机uc浏览器中的极速模式当我们在使用手机的时候&#xff0c;可以下载uc浏览器来浏览网页&#xff0c;为了提升网页的浏览速度&#xff0c;可以开启浏览器中的极速模式&#xff0c;接下来就由小编来告诉大家如何操作。具体如下&#xff1a;1.第一步&#xff0c;打开手…

前端扫盲:什么是API网关?为什么它有用?

API 通常被称为应用程序从后端服务访问数据和业务逻辑的前门。API 本质上是一个软件向其他人或程序提供的接口&#xff0c;允许他们与该软件进行交互。 在创建 API 时&#xff0c;需要选择编程语言(Java、Python、PHP 等)来编写 API 逻辑&#xff0c;还需要将 API 部署到服务器…

ProjectFileManager 发布!项目文件管理效率提升10倍以上!

值此特别的新春假期&#xff0c;盛派网络在这里先祝大家新春安康&#xff01;鼠年平安、幸福、发财、万事如意&#xff01;也祝福疫区的同胞和医护人员平安度过这一段关键时期&#xff01;延长的假期显然也为我们日常工作带来了一些障碍&#xff0c;为了能够利用工具进一步提高…

简历中能熟练使用计算机怎么写,过了计算机二级,可以在简历里写“熟练掌握Excel”吗?...

原标题&#xff1a;过了计算机二级&#xff0c;可以在简历里写“熟练掌握Excel”吗&#xff1f;咨询/快消/互联网/四大/投行PEVC/券商绝大多数岗位都会要求“熟练掌握Excel”而尽管绝大多数同学“实际水平根本达不到工作要求”但是每一位同学都敢在简历上放一句薛定谔的「熟练掌…

.Net Core 认证系统之基于Identity Server4 Token的JwtToken认证源码解析

介绍JwtToken认证之前,必须要掌握.Net Core认证系统的核心原理,如果你还不了解,请参考.Net Core 认证组件源码解析,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还需要掌握identity server4的基本用法,关于identity server4因为涉及到两个协议Oath2.0和openid conn…

【C# 调用 Go 语言】0x2 参数、返回值与类型转换

在上篇文章【C# 调用 Go 语言】0x1 Hello Golang 中&#xff0c;我们将 Golang 源码编译为动态链接库&#xff08;dll&#xff09;&#xff0c;用 C# 调用 Golang 导出的方法并成功的看到了控制台的输出。本篇文章将对 C# 调用 Golang 方法做更详细的介绍&#xff0c;涉及如何…

《ASP.NET Core 微服务实战》-- 读书笔记(第1章 、第2章)

译者序微服务设计方法清晰定义了各个开发团队的业务边界&#xff0c;微服务框架以不同方式实现了服务之间的协作与集成。.NET Core 作为全新的 .NET 技术&#xff0c;它不仅完全开源、跨平台&#xff0c;更面向云原生开发进行了大量细致的优化。它完全模块化&#xff0c;不依赖…

html缩进标签quote,HTML blockquote 标签

HTML 标签标签同样是对文本进行引用&#xff0c;不同的是该标签引用的是长文本。标签内的内容会自动有缩进。实例定义一个摘自另一个源的块引用&#xff1a;For 50 years, WWF has been protecting the future of nature. The worlds leading conservation organization, WWF w…

使用BeetleX.NetBenchmark压测TCP,HTTP和Websocket服务

真没想到大过年还在家里写代码写文章&#xff0c;本来还打算自驾半个月没想出现这情况。在这里祝福全国同胞在新的一年里身体健康&#xff01;希望阳光天气早日照射在这片土地上&#xff0c;给人带来新一年的希望&#xff01;NetBenchmark是针对网络服务压测的开源组件&#xf…

如何使用Serilog.AspNetCore记录ASP.NET Core3.0的MVC属性

这是Serilog系列的第三篇文章。第1部分-如何利用Serilog的RequestLogging来精简ASP.NET Core的日志输出第2部分-Serilog高级玩法之用Serilog记录所选终结点附加属性第3部分-使用Serilog.AspNetCore记录MVC属性&#xff08;本文&#xff09;第4部分-从Serilog请求记录中排除运行…

广东省计算机媒体大赛,广东省大学生计算机设计大赛

广东省大学生计算机设计大赛由广东省教育厅主办。比赛宗旨为进一步提高广东省高校计算机教学和信息技术与学科深度融合的水平&#xff0c;激发省内各高校各专业大学生学习计算机知识和技能的兴趣和潜能&#xff0c;提升大学生运用信息技术解决实际问题的综合实践能力&#xff0…

哈希表-拉链法及应用举例

哈希表存储结构&#xff1a; 1.开放寻址法 2.拉链法 哈希表的主要作用&#xff1a; 把一个较大(0-10^9 )的数据映射到较小(0-N(N一般为10^5 到 10^6))的数据 哈希函数&#xff1a;可以把一个从-10^19 到10^19 的中的一个数映射到0-10^5之间的一个数 1.哈希函数怎么写&#x…

各互联网公司延期上班一览

【延期上班&#xff0c;自我隔离】自从1月26日&#xff0c;国家颁布了延长春节假期的公告之后&#xff0c;互联网行业各公司也纷纷更新了自己的延期上班计划&#xff0c;如下表所示&#xff1a;可以看到&#xff0c;多数公司采取了在家办公的这种模式&#xff0c;还有些公司直接…

计算机系统占有率,微软继续领跑PC操作系统市场 Win10占有率突破25%

腾讯科技讯&#xff0c;据外媒报道&#xff0c;发布一年半之后&#xff0c;Windows 10的市场占有率终于跨过25%这一里程碑&#xff0c;这就意味着&#xff0c;如今世界上每四台电脑中就有一台运行Windows 10系统。Net Applications的数据显示&#xff0c;Windows 10发布后四周内…

递推求组合数

组合数计算公式&#xff1a; 递推公式&#xff1a; 代码模板&#xff1a; #include <iostream> using namespace std; const int N 1010; int c[N][N];int main() {int a,b;cin>>a>>b;//a在下&#xff0c;b在上for (int i 0;i<N;i)for (int j 0;j&…

微软发布 Power BI 2020 上半年发行计划

微软官方与日前发布了 Power BI 在2020上半年的发行计划。本文将在 2020.9 之前都有用&#xff0c;建议收藏查看。从今年开始&#xff0c;我们除了客观描述 Power BI 的特性外&#xff0c;还将加入大量主观观点态度和吐槽&#xff0c;不过不管怎么吐&#xff0c;都只能继续用&a…

AcWing 523. 组合数问题

组合数 Cmn 表示的是从 n 个物品中选出 m 个物品的方案数。  举个例子&#xff0c;从 (1, 2, 3) 三个物品中选择两个物品可以有 (1, 2), (1, 3), (2, 3) 这三种选择方法。  根据组合数的定义&#xff0c;我们可以给出计算组合数 Cmn 的一般公式&#xff1…

远程办公经验为0,如何将日常工作平滑过度到线上?

导语 | 受到疫情影响&#xff0c;很多企业开始考虑远程办公。近日&#xff0c;TVP群里的各位老师们对此话题展开了热烈讨论。TVP张善友老师作为一名创业者&#xff0c;也决定开启远程办公。本文是他对相关经验总结而得的方案&#xff0c;并列出了相关产品清单&#xff0c;希望对…