ACdream 1195 Sudoku Checker (暴力)
Sudoku Checker
128000/64000KB (Java/Others)
Problem Description
Sudoku is a popular single player game. The objective is to fill a 9x9 matrix with digits so that each column, each row, and all 9 non-overlapping 3x3 sub-matrices contain all of the digits from 1 through 9. Each 9x9 matrix is partially completed at the
start of game play and typically has a unique solution.

Given a completed N2×N2 Sudoku matrix, your task is to determine whether it is a valid solution.
A valid solution must satisfy the following criteria:
- Each row contains each number from 1 to N2, once each.
- Each column contains each number from 1 to N2, once each.
- Divide the N2×N2 matrix into N2 non-overlappingN×N sub-matrices. Each sub-matrix contains each number from 1 to N2, once each.
You don't need to worry about the uniqueness of the problem. Just check if the given matrix is a valid solution.
Input
The first line of the input gives the number of test cases, T(1 ≤ T ≤ 100).
T test cases follow. Each test case starts with an integer N(3 ≤ N ≤ 6).
The next N2 lines describe a completed Sudoku solution, with each line contains exactlyN2 integers.
All input integers are positive and less than 1000.
Output
For each test case, output one line containing "Case #x: y", where x is the case number (starting from 1) andy is "Yes" (quotes for clarity only) if it is a valid solution, or "No" (quotes for clarity only)
if it is invalid.
Sample Input
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
Sample Output
Case #1: Yes
Case #2: No
Case #3: No
大致题意:给一个数独。看看符不符合要求。
PS:做个题还长姿势了。曾经仅仅听过数独,可是没玩过,这次A道题,搞懂了其本规则,哈哈。收获不小。
好了。那就介绍一下规则吧,现给出n^2*n^2的数独,推断是否满足:
1.每行要用1~n^2的数填满,而且每一个数仅仅出现一次。就是把1~n^2排列到每一行。
2.行的要求跟列一样;
3.还要满足均分成的n^2个n*n的矩形的元素也要满足1~n^2个数的排列。
AC代码:
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int a[40][40], b[40][1000], c[40][1000], d[1000];
int T,t,n; int main(){
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
scanf("%d", &T);
for(int t=1; t<=T; t++){
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
scanf("%d", &n);
for(int i=1; i<=n*n; i++){ //处理行列
for(int j=1; j<=n*n; j++){
scanf("%d", &a[i][j]);
b[i][a[i][j]]++;
c[j][a[i][j]]++;
}
}
int flag = 1;
for(int i=1; i<=n*n; i++){ //推断行列
for(int j=1; j<=n*n; j++){
if(b[i][j]!=1 || c[i][j]!=1){
flag = 0;
break;
}
}
}
if(flag){
for(int i=1; i<=n; i++){ //推断每一个n*n矩阵
for(int j=1; j<=n; j++){
memset(d,0,sizeof(d));
for(int k=1; k<=n; k++){
for(int s=1; s<=n; s++){
d[a[(i-1)*n+k][(j-1)*n+s]]++;
}
}
for(int k=1; k<=n*n; k++){
if(d[k]!=1){
flag = 0;
break;
}
}
if(!flag) break;
}
if(!flag) break;
}
}
if(flag) printf("Case #%d: Yes\n", t);
else printf("Case #%d: No\n", t);
}
return 0;
}
ACdream 1195 Sudoku Checker (暴力)的更多相关文章
- ACdream 1195 Sudoku Checker (数独)
Sudoku Checker Time Limit:1000MS Memory Limit:64000KB 64bit IO Format:%lld & %llu Submit ...
- Spell checker(暴力)
Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 20188 Accepted: 7404 De ...
- Codeforce Gym 100015I Identity Checker 暴力
Identity Checker 题目连接: http://codeforces.com/gym/100015/attachments Description You likely have seen ...
- 快速切题 acdream手速赛(6)A-C
Sudoku Checker Time Limit: 2000/1000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Others) Submi ...
- POJ训练计划1035_Spell checker(串处理/暴力)
Spell checker Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 18418 Accepted: 6759 De ...
- hdu 1195:Open the Lock(暴力BFS广搜)
Open the Lock Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 2015南阳CCPC H - Sudoku 暴力
H - Sudoku Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 无 Description Yi Sima was one of the best cou ...
- acdream 小晴天老师系列——晴天的后花园 (暴力+剪枝)
小晴天老师系列——晴天的后花园 Time Limit: 10000/5000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) ...
- acdream暴力专场中的优美暴力
F - 小晴天老师系列——苹果大丰收 Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Other ...
随机推荐
- Android使用HttpClient方法和易错问题
HttpClient为Android开发人员提供了跟简洁的操作Http网络连接的方法,在连接过程中也有两种方式,get和post,先看一下怎样实现的 默认是get方式 //先将參数放入List,再对參 ...
- 采用shell脚本统计代码的行数
刚毕业那会儿有一次去台湾公司面试,我问多行代码怎么写.我从来没有想过这个问题,粗略计算,.惊叹:大概几十万行不行. 最近整理资料,看着eclipse左边全面上市,我觉得这个东西.代码共同拥有的行倒底总 ...
- NET MVC
NET MVC 1.为 Action 标注 Attribute 限制访问 public class HomeController : Controller { [HttpPost] public Ac ...
- Forbidden You don't have permission to access / on this server.
原文:Forbidden You don't have permission to access / on this server. Forbidden You don't have permissi ...
- 好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题
用ssh登录一个机器(换过ip地址),提示输入yes后,屏幕不断出现y,仅仅有按ctrl + c结束 错误是:The authenticity of host 192.168.0.xxx can't ...
- Unity最优化摘要
我们的游戏已经wp8.ios和android平台上的线. 这是我第一次做Unity工程,过程中遇到很多困难和挫折,但是,我和小伙伴探路,现在.该游戏已经上线一段时间.而且很稳定.为Unity.我一直在 ...
- Linux:闪光的宝石,智慧(下一个)
2005年4月7日.Linus Torvalds公布了一款新型通用工具软件包,叫做"Git"(the Git source code management system).&quo ...
- 3 sum
3-sum 标题叙述性说明: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = ...
- Asp.Net MVC 2.0 Filter基本用法
在这一节里,大家一同学习下mvc 2.0中的filter,简单的说,filter就是标记在action上的一些属性,来实现对action的控制. mvc2.0中主要包括以下filter 1. Auth ...
- Configuration配置信息管理
Configuration配置信息管理 在前面的章节中,我们知道新版的MVC程序抛弃了原来的web.config文件机制,取而代替的是config.json,今天我们就来深入研究一下配置文件的相关内容 ...