poj2918 Tudoku---dfs

2014-11-24 03:15:29 · 作者: · 浏览: 0

数独的思路特简单 就dfs啊

遇到要填的地方就填一个该行该列都没有的数

一直填下去 有找不到的就回溯 重新填


把每个点可以填的数预处理了一下 就没有用到剪枝什么的。。




#include 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        #include 
       
         #include 
        
          #include 
         
           #include 
           using namespace std; vector
           
             hang[10]; vector
            
              lie[10]; int zero[10][10],a[10][10]; int dfs(int num) { int i,j,k,p,sz1,sz2,tmp; if(num==0) return 1; for(i=0;i<9;i++) { for(j=0;j<9;j++) { if(zero[i][j])//找到0的地方就填一个行和列都没有的数 { sz1=hang[i].size(); sz2=lie[j].size(); for(k=0;k