数独~~~~~~只记得当下的眼疼 只记得挡下的强烈( ~不潮不花钱~) , 那个啥 言归正传 , 今晚真是 做的眼疼 , 只记得当下的强烈 , 扣扣扣扣 , 左左左左 偏左就用左手 . 好不容易做出来  结果被  卡死到  输出格式上了 ...... 这个题是需要再做一下的  输出的时候 两组数据之间必须要有一个空行 隔开  实际上搜索是非常简单的 , 就是跳出去的时机应该好好把握 .  Hey greedy,don’t fret What you see is what you get You name it,I have it  请你不要到处扣扣

这个题是需要再做一下的

数独~~~~~~只记得当下的眼疼
只记得挡下的强烈( ~不潮不花钱~) , 那个啥 言归正传 , 今晚真是 做的眼疼 , 只记得当下的强烈 , 扣扣扣扣 , 左左左左 偏左就用左手 . 好不容易做出来  结果被  卡死到  输出格式上了 ......
这个题是需要再做一下的
 输出的时候 两组数据之间必须要有一个空行 隔开
 实际上搜索是非常简单的 , 就是跳出去的时机应该好好把握 . 
Hey greedy,don’t fret
What you see is what you get
You name it,I have it
 请你不要到处扣扣

 输出的时候 两组数据之间必须要有一个空行 隔开

 实际上搜索是非常简单的 , 就是跳出去的时机应该好好把握 . 

数独~~~~~~只记得当下的眼疼
只记得挡下的强烈( ~不潮不花钱~) , 那个啥 言归正传 , 今晚真是 做的眼疼 , 只记得当下的强烈 , 扣扣扣扣 , 左左左左 偏左就用左手 . 好不容易做出来  结果被  卡死到  输出格式上了 ......
这个题是需要再做一下的
 输出的时候 两组数据之间必须要有一个空行 隔开
 实际上搜索是非常简单的 , 就是跳出去的时机应该好好把握 . 
Hey greedy,don’t fret
What you see is what you get
You name it,I have it
 请你不要到处扣扣

Hey greedy,don’t fret

What you see is what you get

You name it,I have it

 请你不要到处扣扣

最早的时候  我一直用的都是  两个for循环 遍历 寻找  结果就是  不停错误  ,  ......................先付上修改之后的代码 , 一会在用原来的思想强行实现一波.

 1 #include<stdio.h>
 2 int a[9][9];
 3 int flag;
 4 bool check(int y,int x,int mark)
 5 {
 6     for(int i=0;i<9;i++)
 7     {
 8         if(a[y][i]==mark)
 9             return false;
10         if(a[i][x]==mark)
11             return false;
12     }
13     for(int i=(y/3)*3;i<(y/3)*3+3;i++)
14         for(int j=(x/3)*3;j<(x/3)*3+3;j++)
15     {
16         if(a[i][j]==mark)
17             return false;
18     }
19     return true;
20 }
21 int n;
22 void DFS()
23 {
24     if(n==81)
25     {
26         return;
27     }
28     for(int i=n,mark=0;i<=81;i++)       //       在 搜索的时候 尽量  少用  for循环     不然到时候 找到合适的条件的时候  不容易跳出来
29     {
30 
31         if(i==81)
32         {
33             n=81;
34             return;
35         }
36         int y=i/9,x=i%9;
37         if(a[y][x]==0)
38         {
39             for(int i=1;i<=9;i++)
40             {
41                 if(check(y,x,i))
42                 {
43                     a[y][x]=i;
44                     DFS();
45                     if(n==81)
46                     {
47                         i=81;
48                         break;
49                     }
50                     a[y][x]=0;
51                 }
52                 if(i==9)
53                 {
54                     mark=1;
55                 }
56             }
57             if(mark)
58                 break;
59         }
60     }
61 }
62 int main()
63 {
64     int t;
65     scanf("%d",&t);
66     while(t--)
67     {
68         for(int i=0;i<9;i++)
69            for(int j=0;j<9;j++)
70               scanf("%d",&a[i][j]);
71         n=0;
72         DFS();
73         for(int i=0;i<9;i++)
74         {
75             for(int j=0;j<9;j++)
76                 printf("%d ",a[i][j]);
77             printf("
");
78         }
79         printf("
");
80     }
81     return 0;
82 }