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

poj 2676 Sudoku

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

poj 2676 Sudoku

#include<cstdio>using namespace std;int v[100][2],a[10][10],num,flag;bool judge(int x,int y,int k){    for(int i=0;i<9;i++)    {        if(a[x][i]==k) return 0;        if(a[i][y]==k) return 0;    }    int tx=(x/3)*3;    int ty=(y/3)*3;    for(int i=0;i<3;i++)    {        for(int j=0;j<3;j++)        { if(a[i+tx][j+ty]==k)     return 0;        }    }    return 1;}void dfs(int cap){    if(cap<0)    {        flag=1;        return;    }     for(int i=1;i<=9;i++)     {        int x,y;        x=v[cap][0];        y=v[cap][1];        if(judge(x,y,i))        {          a[x][y]=i;          dfs(cap-1);          if(flag) return;          a[x][y]=0;        }     }   return;}int main(){    int n;    scanf("%d",&n);    while(n--)  {    flag=0,num=0;    char c;    for(int i=0;i<9;i++)    {        getchar();        for(int j=0;j<9;j++)        { scanf("%c",&c); a[i][j]=c-'0'; if(a[i][j]==0) {     v[num][0]=i;     v[num++][1]=j; }        }    }    dfs(num-1);    for(int i=0;i<9;i++)    {        for(int j=0;j<9;j++)        { printf("%d",a[i][j]);        }        printf("n");    }  }  return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/375879.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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