zoukankan      html  css  js  c++  java
  • 数独~~~~~~只记得当下的眼疼

    只记得挡下的强烈( ~不潮不花钱~) , 那个啥 言归正传 , 今晚真是 做的眼疼 , 只记得当下的强烈 , 扣扣扣扣 , 左左左左 偏左就用左手 . 好不容易做出来  结果被  卡死到  输出格式上了 ......

    这个题是需要再做一下的

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

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

    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 }

     

     

  • 相关阅读:
    微服务通过feign.RequestInterceptor传递参数
    fastdfs的storage的IP地址映射docker宿主地址
    Sentinel对Feign的支持
    SpringBoot设置MultipartFile文件大小限制
    SpringBoot+JWT@注解实现token验证
    springBoot 使用 mybatis-plus 实现分页
    MyBatis-Plus 使用xml文件
    MAC inode提示:正在查询SSLVPN网关参数... 查询SSLVPN 网关参数失败,请检查网络配置或联系
    MacOS launchctl 启动进程控制
    可执行Jar格式-1
  • 原文地址:https://www.cnblogs.com/A-FM/p/5342844.html
Copyright © 2011-2022 走看看