NYOJ 722
来源:互联网 发布:淘宝企业店可靠吗 编辑:程序博客网 时间:2024/06/05 18:20
NYOJ 722
#include<stdio.h>#include<string.h>int Map[9][9],floag;int IsCan(int number,int x,int y){//判断Numebr是否满足数独的条件 int i,j; for(i=0;i<9;i++){ if(Map[i][y]==number){ return 0; } } for(i=0;i<9;i++){ if(Map[x][i]==number){ return 0; } } x=x/3*3,y=y/3*3; for(i=x;i<x+3;i++) for(j=y;j<y+3;j++) if(Map[i][j]==number) return 0; return 1;}void dfs(int x,int y){ if(floag) return ;//floag用于标记,当所有数据都搜完的时候就给跳出 if(x==9 && y==0){ int i,j; for(i=0;i<9;i++){ for(j=0;j<9;j++){ printf("%d ",Map[i][j]); } printf("\n"); } floag=1; return ; } if(y==9){//一行结束进入下一行 dfs(x+1,0); } if(Map[x][y]!=0){//已经有数就填下一个 dfs(x,y+1); } if(Map[x][y]==0){ int i; for(i=1;i<=9;i++){ if(IsCan(i,x,y)){ Map[x][y]=i; dfs(x,y+1); Map[x][y]=0;//回溯清除,当一次搜索结束的时候但是不满足就将之前的结果清除 } } }}int main(){ int n; scanf("%d",&n); while(n--){ int i,j; for(i=0;i<9;i++){ for(j=0;j<9;j++){ scanf("%d",&Map[i][j]); } } dfs(0,0); memset(Map,0,sizeof(Map)); floag=0; } return 0;}
0 0
- NYOJ 722
- nyoj 722
- 数独(nyoj 722)
- NYOJ 722 数独
- Nyoj 722 数独
- NYOJ-722 数独
- nyoj-722 数独
- NYOJ 722 数独
- NYOJ 722 数独
- NYOJ 722 数独
- nyoj 722 数独
- NYOJ 722 数独
- NYOJ-722 数独
- nyoj-722数独
- NYOJ-722-数独
- NYOJ 722数独
- NYOJ 722 数独
- NYOJ 722 数独
- NYOJ 592
- week plan: 2014.12.01-12.7
- UIButton和UIView的区别
- MFC Unicode转成UTF-8
- 多线程意义最通俗的总结
- NYOJ 722
- HDU--3457--Rectangles--记忆化搜索
- 从头认识C—判断程序的结果
- [leetcode]Intersection of Two Linked Lists
- atitit.自己动手开发编译器and解释器(1) ------词法分析--attilax总结
- 基于Las Vegas 和回溯法的皇后问题(C语言描述)
- NYOJ 352 数乌龟
- VS2010中_T("")宏的作用
- 简单工厂模式(SimpleFactoryPattern)对比工厂方法模式(FactoryMethodPattern)分析