zoukankan      html  css  js  c++  java
  • hdu 1426

    数独,O(∩_∩)O哈哈~做了这道,以后什么数独就可以直接得出答案了……

    View Code
      1 #include <iostream>
    2 #include <cstring>
    3 using namespace std;
    4
    5 int sudo[9][9];
    6 int flag;
    7
    8 void dfs(int a,int b);
    9 int is_repeat(int i,int j,int k);
    10
    11 int main()
    12 {
    13 char a;
    14 int cas=0;
    15 while(cin>>a)
    16 {
    17 memset(sudo,0,sizeof(sudo));
    18 int i,j;
    19 flag=0;
    20
    21 for(i=0;i<9;i++)
    22 {
    23 for(j=0;j<=8;j++)
    24 {
    25 if(i!=0||j!=0)
    26 cin>>a;
    27
    28 if(a>'0'&&a<='9')
    29 sudo[i][j]=a-'0';
    30 else
    31 sudo[i][j]=0;
    32
    33 }
    34 }
    35
    36 dfs(0,0);
    37 if(cas)
    38 cout<<endl;
    39 cas++;
    40
    41 for(i=0;i<9;i++)
    42 {
    43 for(j=0;j<9;j++)
    44 {
    45 cout<<sudo[i][j];
    46 if(j!=8)
    47 cout<<" ";
    48 else
    49 cout<<endl;
    50 }
    51 }
    52 }
    53
    54 return 0;
    55 }
    56 int is_repeat(int i,int j,int k)
    57 {
    58 int t,p;
    59 for(t=0;t<9;t++)
    60 {
    61 if(sudo[i][t]==k)
    62 return 1;
    63 }
    64
    65 for(t=0;t<9;t++)
    66 {
    67 if(sudo[t][j]==k)
    68 return 1;
    69 }
    70 for(t=i/3*3;t<i/3*3+3;t++)
    71 {
    72 for(p=j/3*3;p<j/3*3+3;p++)
    73 {
    74 if(sudo[t][p]==k)
    75 return 1;
    76 }
    77 }
    78
    79 return 0;
    80 }
    81
    82 void dfs(int a,int b)
    83 {
    84 if(a==9)
    85 {
    86 flag=1;
    87 return ;
    88 }
    89
    90 if(!sudo[a][b])
    91 {
    92 //cout<<"*"<<a<<b<<endl;
    93 for(int k=1;k<=9;k++)
    94 {
    95 if(!is_repeat(a,b,k))
    96 {
    97 sudo[a][b]=k;
    98 if(b==8)
    99 dfs(a+1,0);
    100 else
    101 dfs(a,b+1);
    102 if(flag)//起初用的是a==9,悲剧的错误,还是问了别人之后才知道的,当回溯后a值不会是9了
    103 return;
    104 sudo[a][b]=0;//刚开始没有添加这段,悲剧的WA
    105 }
    106 }
    107 }
    108 else
    109 {
    110 if(b==8)
    111 dfs(a+1,0);
    112 else
    113 dfs(a,b+1);
    114 }
    115 }
  • 相关阅读:
    解除对80端口的占用
    php排序算法
    Jquery异步请求数据实例
    C# winform 递归选中TreeView子节点
    C# WinFrom 编写正则表达式验证类
    c# winfrom 委托实现窗体相互传值
    [转]我的第一个WCF
    计算字符串中子串出现的次数
    JQuery中的html(),text(),val()区别
    Crystal Report制作使用
  • 原文地址:https://www.cnblogs.com/Shirlies/p/2377674.html
Copyright © 2011-2022 走看看