栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 3120 Sudoku

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 3120 Sudoku

#include <stdio.h>#include <string.h>#include <algorithm>#include <cmath>using namespace std;int b1[9][9], b2[9][9];int p3[][3] = {    {0,1,2},    {0,2,1},    {1,0,2},    {1,2,0},    {2,0,1},    {2,1,0}};int *colseg, *rowseg;int *col[3];int check3(int r, int *m);int check4(int r, int *p, int *m){    int i, j, k, l;    int r1, c1, r2, c2;    int v1, v2;    int m2[10];    memcpy(m2, m, sizeof(int)*10);    for (j = 0; j < 3; j++)        for (k = 0; k < 3; k++) for (l = 0; l < 3; l++) {     r1 = p[j] + rowseg[r]*3;     c1 = colseg[k]*3 + col[k][l];     r2 = j + r*3;     c2 = k*3 + l;     v1 = b1[r1][c1];     v2 = b2[r2][c2];     if (v2) {         if (!m2[v2])  m2[v2] = v1;         else if (m2[v2] != v1)  return 0;     } }    return check3(r + 1, m2);}int check3(int r, int *m){    int i;    if (r == 3)        return 1;    for (i = 0; i < 6; i++)         if (check4(r, p3[i], m)) return 1;    return 0;}int check2(){    int i, j, k;    for (i = 0; i < 6; i++)         for (j = 0; j < 6; j++) for (k = 0; k < 6; k++) {     int m[10] = {};     col[0] = p3[i];     col[1] = p3[j];     col[2] = p3[k];     if (check3(0, m))         return 1; }    return 0;}int check(){    int i, j;    for (i = 0; i < 6; i++) {        for (j = 0; j < 6; j++) { colseg = p3[i]; rowseg = p3[j]; if (check2())     return 1;        }    }    return 0;}int solve(){    int i, j, b[9][9];    if (check())        return 1;    for (i = 0; i < 9; i++)        for (j = 0; j < 9; j++) b[i][j] = b1[8-j][i];    memcpy(b1, b, sizeof(b));    return check();}int main(){    int T, i;    scanf("%d", &T);    for (; T--; ) {        for (i = 0; i < 81; ++i) scanf(" %1d", b1[i/9]+i%9);        for (i = 0; i < 81; ++i) scanf(" %1d", b2[i/9]+i%9);        printf(solve() ? "Yesn" : "Non");    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381073.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号