zoukankan      html  css  js  c++  java
  • C++-蓝桥杯-九宫幻方[暴力搜索][无剪枝]

     1 #include <cstdio>
     2 int a[10],copy[10],cnt,ans,flag;
     3 bool check(){
     4     int sum=a[1]+a[2]+a[3];
     5     if(sum!=a[4]+a[5]+a[6])return false;
     6     if(sum!=a[1]+a[4]+a[7])return false;
     7     if(sum!=a[3]+a[5]+a[7])return false;
     8     if(sum!=a[2]+a[5]+a[8])return false;
     9     if(sum!=a[3]+a[6]+a[9])return false;
    10     if(sum!=a[7]+a[8]+a[9])return false;
    11     if(sum!=a[1]+a[5]+a[9])return false;
    12     return true;
    13 }
    14 int vis[10],p[10];
    15 void dfs(int n){
    16     if(ans>1)return;
    17     if(n==cnt){
    18         if(check()){
    19             flag=1,ans++;
    20             for(int i=1;i<=9;i++)copy[i]=a[i];
    21         }
    22         return;
    23     }
    24     for(int i=1;i<=9;i++){
    25         if(!vis[i]){
    26             a[p[n+1]]=i,vis[i]=1;
    27             dfs(n+1);
    28             a[p[n+1]]=0,vis[i]=0;
    29         }
    30     }
    31 }
    32 int main(){
    33     for(int i=1;i<=9;i++){
    34         scanf("%d",&a[i]);
    35         if(a[i])vis[a[i]]=1;
    36         else p[++cnt]=i;
    37     }
    38     dfs(0);
    39     if(ans>1)puts("Too Many");
    40     else
    41         for(int i=1;i<=9;i++){
    42             printf("%d ",copy[i]);
    43             if(i%3==0)puts("");
    44         }
    45     return 0;
    46 } 
  • 相关阅读:
    JSP第六周作业
    JSP第四次(2.0)
    JSP第四周
    软件测试课堂练习1
    5。建库,表,增删改查
    4.安卓练习
    2android九宫格
    第七周作业
    jsp第六周作业
    jsp第四周作业
  • 原文地址:https://www.cnblogs.com/JasonCow/p/12394433.html
Copyright © 2011-2022 走看看