zoukankan      html  css  js  c++  java
  • 数独问题(南阳)

     
     
    #include<iostream>
    using namespace std;
    int begin[9][9];
    bool check(int x,int y,int k)
    {
        for(int i=0;i<9;i++)
            if(begin[i][y]==k)
                return false;
        for(int j=0;j<9;j++)
            if(begin[x][j]==k)
                return false;
        int sx=(x/3)*3;
        int sy=(y/3)*3;
        for(int i=sx;i<sx+3;i++)
            for(int j=sy;j<sy+3;j++)
                if(begin[i][j]==k)
                    return false;
        return true;
    }
    bool dfs(int x,int y)
    {
        if(begin[x][y])//这个if用来深度搜索 
        {
            if(y+1<9)
            {
                if(dfs(x,y+1))//y++也就是遍历第一行 
                    return true;
            }
            else if(x+1<9)
            {
                if(dfs(x+1,0))// 当列不能再加的时候再从第二行的第一列开始循环; 
                    return true;
            }
            else
                return true;
        }
        else
        {
            for(int k=1;k<=9;k++)
            {
                if(check(x,y,k))
                {
                    begin[x][y]=k;
                    if(y+1<9)
                    {
                        if(dfs(x,y+1))
                            return true;
                    }
                    else if(x+1<9)
                    {
                        if(dfs(x+1,0))
                            return true;
                    }
                    else
                        return true;
                    begin[x][y]=0;                
                }
            }
        }
        return false;
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            for(int i=0;i<9;i++)
                for(int j=0;j<9;j++)
                    cin>>begin[i][j];
            dfs(0,0);
            for(int i=0;i<9;i++)
            {
                for(int j=0;j<9;j++)
                {
                     cout<<begin[i][j]<<" "; 
                }
                cout<<endl;
            }
        } 
        //system("pause");
        return 0;
    }
                    
    View Code
  • 相关阅读:
    Servlet CDI Example Analysis
    JSON续
    JSON
    Ubuntu 下安装 MySQL
    Filter介绍
    Annotation相关
    Container、Injection
    Java buildTools
    Http协议
    URI URL URN 的区别
  • 原文地址:https://www.cnblogs.com/baoluqi/p/3746017.html
Copyright © 2011-2022 走看看