POJ3435 Sudoku Checker
来源:互联网 发布:mac chili色号 编辑:程序博客网 时间:2024/05/22 14:24
问题链接:POJ3435 Sudoku Checker。入门练习题,用C语言编写程序。
题意简述:输入n,然后输入(n×n)×(n×n)的二维数组,0表示可以是任意值,编写程序检查这些数据是否满足数独的初始状态。
问题分析:需要做的检查有:值范围检查,行、列和块的值重复检查。
程序中编写函数getblock()用于将行和列的值转换为块的值。
AC的C语言程序如下:
/* POJ3435 Sudoku Checker */#include <stdio.h>#include <memory.h>#define MAXN 10+1int row[MAXN * MAXN][MAXN * MAXN];int col[MAXN * MAXN][MAXN * MAXN];int block[MAXN * MAXN][MAXN * MAXN];/* 行列下标转换为块下标 */int getblock(int row, int col, int n){ return (row / n) * n + col / n;}int main(void){ int n, okflag, val, square, b, i, j; while(scanf("%d", &n) != EOF) { memset(row, 0, sizeof(row)); memset(col, 0, sizeof(col)); memset(block, 0, sizeof(block)); okflag = 1; square = n * n; for(i=0; i<square; i++) for(j=0; j<square; j++) { scanf("%d", &val); if(val > square) okflag = 0; else if(val) { b = getblock(i, j, n); if(row[i][val -1] || col[j][val - 1] || block[b][val - 1]) okflag = 0; row[i][val - 1] = 1; col[j][val - 1] = 1; block[b][val - 1] = 1; } } printf("%s\n", okflag ? "CORRECT" : "INCORRECT"); } return 0;}
1 0
- POJ3435 Sudoku Checker
- 【POJ3435】Sudoku Checker,注意:这不是数独!!!!
- Sudoku Checker
- poj3435
- POJ 3435 Sudoku Checker
- POJ 3435 Sudoku Checker
- POJ 3435 Sudoku Checker 可能会
- Google Code Jam Notes - Sudoku Checker - Java
- ACdream 1195 Sudoku Checker(模拟)
- ACdream 1195 Sudoku Checker (暴力)
- [Round B] China New Grad Test 2014: Problem A. Sudoku Checker
- Sudoku
- sudoku
- Sudoku
- sudoku
- Sudoku
- Sudoku
- sudoku
- MarkdownPad 2 安装和破解
- TestNG中的运行时测试实例工厂详解
- TestNG测试的并发执行详解
- poj 2965 The Pilots Brothers' refrigerator
- 基于NX的研发产品设计管理平台实现(四)--物料编码的录入及管理1
- POJ3435 Sudoku Checker
- 180.User SCOTT wants to perform a bulk insert operation in the EMP_DEP table. SCOTT receives the fol
- git仓库整理实战
- poj——3320Jessica's Reading Problem(尺取法 求最小看书页数)
- Linux下查看进程占用内存的最好方式
- poj——3061Subsequence(尺取法 求最小数量满足S)
- poj——2456Aggressive cows(二分搜索 求牛牛之间最大距离)
- prefuse同时做多个图---解决不连通图的坐标原点
- poj——1064Cable master(二分搜索 求绳子可以满足的最大长度)