博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj2676
阅读量:4984 次
发布时间:2019-06-12

本文共 906 字,大约阅读时间需要 3 分钟。

#include<stdio.h> int num,v[100][2],map[10][10]; //bool pd[10][10]; //判断输入的时候是否为零

bool judge(int x,int y,int k) {  int i,j,it,jt;  for(i=0;i<9;i++)  {   if(map[i][y]==k) return false;   if(map[x][i]==k) return false;  }  it=(x/3)*3;  jt=(y/3)*3;  for(i=0;i<3;i++)   for(j=0;j<3;j++)    if(map[i+it][j+jt]==k)     return false;  return true; }

int dfs(int cap){  int i,x,y;  if(cap<0) return 1;

 for(i=1;i<=9;i++){   x=v[cap][0];   y=v[cap][1];   if(judge(x,y,i)){    map[x][y]=i;    if(dfs(cap-1)) return 1;    map[x][y]=0;   }  }  return 0; }

int main(){  freopen("in.txt","r",stdin);  int t,i,j;  char c;  scanf("%d\n",&t);  while(t--){   num=0;   for(i=0;i<9;i++,getchar())    for(j=0;j<9;j++){     scanf("%c",&c);     map[i][j]=c-'0';     if(map[i][j]==0){  //将为空的点的坐标全部记录下来,等下需要用暴力解决      v[num][0]=i;      v[num++][1]=j;     }    }   dfs(num-1);   for(i=0;i<9;i++){    for(j=0;j<9;j++)     printf("%d",map[i][j]);    printf("\n");   }  }  return 0; }

转载于:https://www.cnblogs.com/liunx1109/p/6206386.html

你可能感兴趣的文章
poj3613:Cow Relays(倍增优化+矩阵乘法floyd+快速幂)
查看>>
1029: [JSOI2007]建筑抢修
查看>>
网络流专题
查看>>
RxJava
查看>>
Json字符与Json对象的相互转换
查看>>
python 操作ini文件
查看>>
apache 2.4 针对某个文件限速
查看>>
【几何 大数】【HDOJ】5655 CA Loves Stick
查看>>
[转] 多线程 《深入浅出 Java Concurrency》目录
查看>>
asp 显示星期几和日期
查看>>
LeetCode 第206题 反转链表
查看>>
Linux—Ubuntu14.0.5设置MySQL的字符集
查看>>
洛谷P1886 滑动窗口
查看>>
Shell编程(二)Bash中调用Python
查看>>
mysql生成数据字典
查看>>
iptables 代理设置
查看>>
String方法的应用:
查看>>
swift 中guard where
查看>>
前端css
查看>>
【机器学习】K-Means算法
查看>>