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

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

题意:数独问题

这个题思路很好想,但是在判断3*3小区域的时候出现了错误。写的时候还是稳一些吧,要不然调的时候会吐血的。
代码:

View Code
1 #include 
2 #include
3 #include
4 using namespace std; 5 6 const int maxnum=10; 7 int array[maxnum][maxnum]; 8 bool flag; 9 int cur; 10 struct pos 11 { 12 int x; 13 int y; 14 }pos[82]; 15 16 bool judge(int x,int y,int num) 17 { 18 int i,j; 19 for(i=1;i<=9;i++) 20 if(array[i][y]==num) 21 return false; 22 for(i=1;i<=9;i++) 23 if(array[x][i]==num) 24 return false; 25 int a=(x-1)/3*3+1; //这里出错了,人品啊~ 26 int b=(y-1)/3*3+1; 27 for(i=a;i<=a+2;i++) 28 for(j=b;j<=b+2;j++) 29 if(array[i][j]==num) 30 return false; 31 return true; 32 } 33 34 void dfs(int curnum) 35 { 36 int i; 37 if(curnum==0) 38 { 39 flag=true; 40 return ; 41 } 42 int a=pos[curnum].x; 43 int b=pos[curnum].y; 44 //int i; 45 for(i=1;i<=9;i++) 46 { 47 if(judge(a,b,i)) 48 { 49 array[a][b]=i; 50 dfs(curnum-1); 51 if(flag) return ; 52 array[a][b]=0; 53 } 54 55 } 56 } 57 58 int main() 59 { 60 int num; 61 int i,j; 62 char ch; 63 scanf("%d",&num); 64 getchar(); 65 while(num--) 66 { 67 cur=1; 68 flag=false; 69 memset(array,0,sizeof(array)); 70 for(i=1;i<=9;i++) 71 { 72 for(j=1;j<=9;j++) 73 { 74 scanf("%c",&ch); 75 if(ch=='0') 76 { 77 pos[cur].x=i; 78 pos[cur].y=j; 79 cur++; 80 } 81 else 82 array[i][j]=ch-'0'; 83 } 84 if(j==10) 85 getchar(); 86 } 87 88 dfs(cur-1); 89 for(i=1;i<=9;i++) 90 { 91 for(j=1;j<9;j++) 92 printf("%d",array[i][j]); 93 if(j==9) 94 printf("%d\n",array[i][j]); 95 } 96 } 97 return 0; 98 } 99 100 /*101 1102 100628579103 572139468104 986754231105 391542786106 468917352107 725863914108 237481695109 619275843110 854396127111 */

 

tju oj 1851

转载于:https://www.cnblogs.com/pushing-my-way/archive/2012/07/29/2613782.html

你可能感兴趣的文章
《机电传动控制》学习笔记03-1
查看>>
读《大道至简》第六章感想
查看>>
ef linq 中判断实体中是否包含某集合
查看>>
金蝶K/3 BOS产品培训教案
查看>>
章三 链表
查看>>
react组件回顶部
查看>>
【LeetCode】Palindrome Partitioning 解题报告
查看>>
Solution for Concurrent number of AOS' for this application exceeds the licensed number
查看>>
从壹开始微服务 [ DDD ] 之一 ║ D3模式设计初探 与 我的计划书
查看>>
python 错误之SyntaxError: Missing parentheses in call to 'print'
查看>>
Windows Phone开发(16):样式和控件模板
查看>>
CSE 3100 Systems Programming
查看>>
洛谷 1604——B进制星球(高精度算法)
查看>>
IntelliJ IDEA 的Project structure说明
查看>>
Java Security(JCE基本概念)
查看>>
Linux Supervisor的安装与使用入门
查看>>
AngularJS和DataModel
查看>>
在进行商业运算时解决BigDecimal的精度丢失问题
查看>>
创建 PSO
查看>>
JasperReport报表设计4
查看>>