博客
关于我
703. 数独检查 - AcWing题库
阅读量:629 次
发布时间:2019-03-14

本文共 1292 字,大约阅读时间需要 4 分钟。

数独是一种流行的单人游戏。

目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字。

每个9x9矩阵在游戏开始时都会有部分数字已经给出,通常有一个独特的解决方案。

1.png

2.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

#include
#include
#include
#include
#include
#include
#include
using namespace std;#define ll long long#define N 40int a[N][N];int v[N];int m,n;bool check_row(){ for(int i=0; i
m || a[i][j]<1) return false; if(!v[a[i][j]]){ v[a[i][j]] = 1; } else{ return false; } } } return true;}bool check_col(){ for(int i=0; i
m || t<1) return false; if(!v[t]){ v[t] = 1; } else{ return false; } } } return true;}bool check_k()//检查块{ for(int i=0; i
m || t<1) return false; if(!v[t]){ v[t] = 1; } else{ return false; } } } } } return true;}int main(){ int t; cin>>t; for(int xx=1; xx<=t; ++xx){ cin>>n; m = n*n; for(int i=0; i
>a[i][j]; if(check_row() && check_col() && check_k()){ printf("Case #%d: Yes\n",xx); } else{ printf("Case #%d: No\n",xx); } } return 0;}

转载地址:http://jpxoz.baihongyu.com/

你可能感兴趣的文章
Nginx反向代理与正向代理配置
查看>>
Nginx反向代理及负载均衡实现过程部署
查看>>
Nginx反向代理和负载均衡部署指南
查看>>
Nginx反向代理是什么意思?如何配置Nginx反向代理?
查看>>
nginx反向代理解决跨域问题,使本地调试更方便
查看>>
nginx反向代理转发、正则、重写、负摘均衡配置案例
查看>>
Nginx反向代理配置
查看>>
Nginx启动SSL功能,并进行功能优化,你看这个就足够了
查看>>
nginx启动脚本
查看>>
Nginx和Tomcat的区别
查看>>
Nginx在Windows上和Linux上(Docker启动)分别配置基本身份认证示例
查看>>
Nginx在Windows下载安装启动与配置前后端请求代理
查看>>
Nginx在开发中常用的基础命令
查看>>
Nginx基础知识点与使用场景梳理
查看>>
Nginx多域名,多证书,多服务配置,实用版
查看>>
nginx如何实现图片防盗链
查看>>
Nginx学习总结(10)——Nginx前后端分离将多个请求转发到多个Tomcat,负载均衡反向代理
查看>>
Nginx学习总结(11)——提高Nginx服务器的安全性,稳定性和性能的12种技巧
查看>>
Nginx学习总结(12)——Nginx各项配置总结
查看>>
Nginx学习总结(13)——Nginx 重要知识点回顾
查看>>