POJ 3435 Sudoku Checker
来源:互联网 发布:淘宝图片怎么拍摄技巧 编辑:程序博客网 时间:2024/06/07 18:29
一开始理解错了题目,以为是叫我填数独,后来才知道是检测当前的格子有无重复数字
这个题目类似数独,但不需要你填数字
题目意思叫你写一个程序,检测这个矩阵每一行,每一列,和每个n*n的格子内,有没有重复的数字。数字范围是从1---n^2
解题思路:简单遍历每一个且大于0的格子,看每一行,每一列,每个小格子里有没有重复的数字就可以。
附上原博客地址http://blog.csdn.net/u013582254/article/details/38352919
以下是转载自别人的AC代码,有一点不明白,别人的二维数组开小了,但依然可以过
对于每个小方格的检测,大部分人用的方法都一样,都是把方格按从左到右,从上到下,依次编号,然后排列在一个二维数组里。具体实现方法就是把横纵坐标进行转化。
Row/n*n求出是哪一行的方格,col/n求出是哪一列的方格,同一个方格的col/n的值是相同的,这一点是很巧妙的。
可以理解为把格子从左到右,从上到下,依次编号,线性排列在二维数组里面
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<limits.h>using namespace std;const int maxn=110;int a[maxn][maxn],n;int x[maxn][15];int y[maxn][15];int s[maxn][15];int main(){ while(~scanf("%d",&n)) { memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); memset(s,0,sizeof(s)); bool flag=true; for(int i=0;i<n*n;i++) { for(int j=0;j<n*n;j++) { scanf("%d",&a[i][j]); if(a[i][j]>0&&flag) { if(!x[i][a[i][j]])//判断行 x[i][a[i][j]]=1; else flag=false; if(!y[j][a[i][j]])//判断列 y[j][a[i][j]]=1; else flag=false; if(!s[i/n*n+j/n+1][a[i][j]])//判断小方格 s[i/n*n+j/n+1][a[i][j]]=1; else flag=false; } } } if(flag) printf("CORRECT\n"); else printf("INCORRECT\n"); } return 0;}/*我用来测试数组越界操作,数组只开了15,但可以对数组16进行操作41 2 3 4 5 6 7 8 9 10 11 12 13 14 15 162 3 4 5 6 7 8 9 10 11 12 13 14 15 16 13 4 5 6 7 8 9 10 11 12 13 14 15 16 1 24 5 6 7 8 9 10 11 12 13 14 15 16 1 2 35 6 7 8 9 10 11 12 13 14 15 16 1 2 3 46 7 8 9 10 11 12 13 14 15 16 1 2 3 4 51 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16*/
阅读全文
0 0
- POJ 3435 Sudoku Checker
- POJ 3435 Sudoku Checker
- POJ 3435 Sudoku Checker 可能会
- Sudoku Checker
- POJ3435 Sudoku Checker
- Google Code Jam Notes - Sudoku Checker - Java
- ACdream 1195 Sudoku Checker(模拟)
- ACdream 1195 Sudoku Checker (暴力)
- 【POJ3435】Sudoku Checker,注意:这不是数独!!!!
- poj Sudoku
- Sudoku POJ
- poj-1035-Spell checker
- poj 1035 Spell checker
- Poj 1035 --Spell checker
- Spell checker--POJ 1035
- poj 1035 Spell checker
- poj 1035 Spell checker
- POJ-1035-Spell checker
- Python2.*与Python3.*共存问题
- 时间过渡制作
- SQLServer 表 索引 在页中的存储
- YS-AndroidStudio不能打开欢迎界面
- Hadoop深入学习:Combiner
- POJ 3435 Sudoku Checker
- POJ 1177-Picture(线段树+离散化+扫描线)
- rman自动控制文件备份的恢复
- angular跨域的ajax--json数据请求
- poj 1979
- 数据结构实验之栈四:括号匹配(栈)
- (hdu3123)GCC(观察数据范围)
- 部分和问题
- 大话设计模式-Study-Tips-第二章-策略模式