zoukankan      html  css  js  c++  java
  • 数独

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 const int maxn=27;
     6 bool flag;
     7 int map[maxn][maxn];
     8 bool check(int x,int val){
     9   int j=x/9;
    10   for(int i=0;i<9;i++){
    11     if(map[j][i]==val) return false;
    12   }
    13   j=x%9;
    14   for(int i=0;i<9;i++){
    15     if(map[i][j]==val) return false;
    16   }
    17   int xx=x/9/3*3;
    18   int yy=x%9/3*3;
    19   for(int i=xx;i<xx+3;i++){
    20     for(int j=yy;j<yy+3;j++){
    21       if(map[i][j]==val) return 0;
    22     }
    23   }
    24   return true;
    25 }
    26 int dfs(int x){
    27   if(x>=81){flag=true;return 0;}
    28   if(map[x/9][x%9]!=0){dfs(x+1);}
    29   else{
    30     for(int i=1;i<=9;i++){
    31       if(check(x,i)==true){
    32         map[x/9][x%9]=i;
    33         dfs(x+1);
    34         if(flag==true) return 0;
    35         map[x/9][x%9]=0;
    36       }
    37     } 
    38   }
    39 }
    40 int main(){
    41     for(int i=0;i<9;i++){
    42       for(int j=0;j<9;j++){
    43         cin>>map[i][j];
    44       }
    45     }
    46     dfs(0);
    47     for(int i=0;i<9;i++){
    48       for(int j=0;j<9;j++){
    49         cout<<map[i][j]<<" "; 
    50       } 
    51       cout<<endl;
    52     }
    53   return 0;
    54 }
  • 相关阅读:
    MySQL事务隔离级别和MVCC
    windows环境下查看端口是否被占用
    jar找不到问题解决
    Java注解
    Fastjson
    mybatis
    Idea快捷键
    Date与String的相互转换
    Windows快捷键
    [转]linux awk命令详解
  • 原文地址:https://www.cnblogs.com/lcan/p/9643214.html
Copyright © 2011-2022 走看看