背景

XX学校风靡一款智力游戏,也就是数独(九宫格),先给你一个数独,并需要你验证是否符合规则。

描述

具体规则如下:
每一行都用到1,2,3,4,5,6,7,8,9,位置不限,
每一列都用到1,2,3,4,5,6,7,8,9,位置不限,
每3×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。
如下是一个正确的数独:
5 8 1 4 9 3 7 6 2
9 6 3 7 1 2 5 8 4
2 7 4 8 6 5 9 3 1
1 2 9 5 4 6 3 7 8
4 3 6 1 8 7 2 9 5
7 5 8 3 2 9 1 4 6
8 9 2 6 7 1 4 5 3
6 1 5 9 3 4 8 2 7
3 4 7 2 5 8 6 1 9

输入格式

输入n个数独,你来验证它是否违反规则.
第一行为数独个数,第二行开始为第一个数独,之后为第二个,至第n个.
注意!每个数独之间有一个回车隔开!

输出格式

若正确则输出”Right”若不正确则输出”Wrong” 输出一个换一行

测试样例1

输入


5 8 1 4 9 3 7 6 2 
9 6 3 7 1 2 5 8 4 
2 7 4 8 6 5 9 3 1 
1 2 9 5 4 6 3 7 8 
4 3 6 1 8 7 2 9 5 
7 5 8 3 2 9 1 4 6 
8 9 2 6 7 1 4 5 3 
6 1 5 9 3 4 8 2 7 
3 4 7 2 5 8 6 1 9

1 2 3 4 5 6 7 8 9 
2 3 4 5 6 7 8 9 1 
3 4 5 6 7 8 9 1 2 
4 5 6 7 8 9 1 2 3 
5 6 7 8 9 1 2 3 4 
6 7 8 9 1 2 3 4 5 
7 8 9 1 2 3 4 5 6 
8 9 1 2 3 4 5 6 7 
9 1 2 3 4 5 6 7 8

输出

Right 
Wrong

备注

1<=n<=20 (输入的数独个数)
不论输入的数独是错误的还是正确的,数据都保证每个数在1-9之间,即只会出现因为有相同的数而导致违反规则,而不会因为数字超出了1-9的范围而违反规则.

代码

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[][],N;
int hengxiang(int i){
int yanzheng[]={};
for(int k=;k<=;k++)
if(yanzheng[a[i][k]]==) yanzheng[a[i][k]]=;
else {/*cout<<"hengxiang"<<i<<" "<<k<<endl;*/return -;}
return ;
} int shuxiang(int i){
int yanzheng[]={};
for(int k=;k<=;k++)
if(yanzheng[a[k][i]]==) yanzheng[a[k][i]]=;
else {/*cout<<"shuxiang"<<i<<" "<<k<<endl;*/return -;}
return ;
} int jiugong(int i,int j){
int yanzheng[]={};
for(int k1=*i+;k1<=*i+;k1++){
for(int k2=*j+;k2<=*j+;k2++){
// cout<<a[k1][k2]<<" ";
if(yanzheng[a[k1][k2]]==) yanzheng[a[k1][k2]]=;
else {/*cout<<"jiugong i="<<i<<" j="<<j<<" "<<k1<<" "<<k2<<endl;*/return -;}
}
// cout<<endl;
}
// cout<<endl;
return ;
} int main(){
// freopen("01.txt","r",stdin);
scanf("%d",&N);
for(int s=;s<=N;s++){
memset(a,,sizeof(a));
for(int i=;i<=;i++){
for(int j=;j<=;j++){
scanf("%d",&a[i][j]);
}
} int flag=; if(flag==) for(int i=;i<=;i++) if(hengxiang(i)==-) {flag=-;break;}
if(flag==) for(int i=;i<=;i++) if(shuxiang(i)==-) {flag=-;break;}
if(flag==) for(int i=;i<;i++) {
if(flag==)
for(int j=;j<;j++){
if(jiugong(i,j)==-) {flag=-;break;}
}
}
if(flag==) cout<<"Right"<<endl;
else cout<<"Wrong"<<endl;
}
return ;
}
开数组标记1~9
若当前块被标记过了
则接下来所有横向扫描 竖向扫描 九宫格扫描都break
总共调用竖向扫描9次
横向9次
九宫格扫描9次

TYVJ P1093 验证数独 Label:none的更多相关文章

  1. [leetcode]36. Valid Sudoku验证数独

    Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to th ...

  2. [LeetCode] Valid Sudoku 验证数独

    Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...

  3. FusionCharts多数据验证饼图label是否重叠

    昨天,有人问我一个问题:由于饼图的数据太多,label标签上的汉字过多,导致重叠,该怎么解决? 今天我用大量的数据,label标签的字符也很多,但是通过验证没有发现有重叠的情况啊! 1.验证的JSP页 ...

  4. [LeetCode] 36. Valid Sudoku 验证数独

    Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according to th ...

  5. 洛谷 P1074 靶形数独 Label:search 不会

    题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了他最近发明的 ...

  6. TYVJ P1080 N皇后 Label:dfs PS:以前做的一道题,贴出来防忘

    描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 5来描 ...

  7. TYVJ P1047 乘积最大 Label:dp

    背景 NOIP 2000 普及组 第三道 描述 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年.在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力 ...

  8. TYVJ P1103 多项式输出 Label:模拟 有点儿坑

    描述 一元 n 次多项式可用如下的表达式表示:  f(x)=an*x^n+an-1*x^n-1+...+a1*x+a0,an<>0其中,ai*a^x 称为i次项,ai称为i次项的系数.给出 ...

  9. TYVJ 矩阵取数 Label:高精度+dp

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

随机推荐

  1. HDU3344(小广搜+小暴力

    Kakuro Extension Extension Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Ja ...

  2. Java和Python运行速度对比

    Java和Python运行速度对比:同一个函数运行一百万次,Java耗时0.577秒,Python耗时78秒--135倍的差距. 版本:Java 8,Python 2.7.10 Java测试代码: i ...

  3. call_user_func_array使用原型

    If you need to call object and class methods in PHP < 4.0.4, the following code ought to do the t ...

  4. CSS用类选择器在本页写样式

    <title>静夜思</title><style type="text/css">p{color:#ff0000; font-size:24px ...

  5. php-fpm启动

    2014年6月30日 11:52:17 遇到一个问题,安装了redis.so后无论怎么重启nginx 还是 php-fpm都无法加载redis 最后发现重启php-fpm的参数弄错了 要这样: ./p ...

  6. 为eclipse设置好看的代码主题

    eclipse的默认代码背景是白色,上个文章简单说了字体设置,这边主要介绍代码高亮的主题设置,打造更酷的编程界面.网上有文章说可以在设置里面逐一设置,但是比较麻烦,可以去网上下载现成的主题包,网址为: ...

  7. Java for LeetCode 042 Trapping Rain Water

    Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...

  8. 自定义Notification

    private static void updateProgressNotification(Context cxt, int appsCount, int percent, String appNa ...

  9. Car的旅行路线(codevs 1041)

    题目描述 Description 又到暑假了,住在城市A的Car想和朋友一起去城市B旅游.她知道每个城市都有四个飞机场,分别位于一个矩形的四个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第I ...

  10. python基础——字符串和编码

    python基础——字符串和编码 字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用 ...