数独
2016-07-27 15:19
260 查看
#include <stdio.h> #include <string.h> int map[9][9]; bool row[9][10]; bool col[9][10]; bool block[3][3][10]; bool flag; void DFS(int x) { if(flag) return; int r = x / 9; int c = x % 9; int i, j; if(81 == x) { for(i = 0; i < 9; i++) { for(j = 0; j < 9; j++) printf("%d ", map[i][j]); printf("\n"); } flag = 1; return; } if(0 == map[r][c]) { for(i = 1; i <= 9; i++) { if(!(row[r][i] || col[c][i] || block[r / 3][c / 3][i])) { map[r][c] = i; row[r][i] = col[c][i] = block[r / 3][c / 3][i] = 1; DFS(x + 1); row[r][i] = col[c][i] = block[r / 3][c / 3][i] = 0; map[r][c] = 0; } } } else DFS(x + 1); } int main() { int i, j, n; scanf("%d", &n); while(n--) { flag = 0; memset(row, 0, sizeof(row)); memset(col, 0, sizeof(col)); memset(block, 0, sizeof(block)); for(i = 0; i < 9; i++) { for(j = 0; j < 9; j++) { scanf("%d", &map[i][j]); //输入9*9矩阵 if(map[i][j]) { row[i][map[i][j]] = 1; col[j][map[i][j]] = 1; block[i/3][j/3][map[i][j]] = 1; } } } DFS(0); } return 0; }
相关文章推荐
- 去111
- js最近天数
- I.MX6 Ethernet MAC (ENET) MAC Address hacking
- 自定义navigationitem时,button的状态颜色问题
- 关于部分手机app安装失败或安装未成功的原因
- Jquery vaildate 自定义验证图片大小和类型
- w
- selenium中sendKeys对于不同版本的实现
- Java Charset
- 很赞的JSF参考教程,走不路过,不要错过
- javaweb学习总结(十四)——JSP原理
- 类和对象
- 数据库官方在线文档列表(mysql, postgreSQL)
- win10删除导航栏文档等图标,去除快捷方式
- Java面试——基础
- win10系统中UserManager 总是被禁用怎么解决?
- 147. Insertion Sort List
- Linux内核学习的一些国外网站
- linux下终端的类型(TTY)
- #尺取法 --由codeforces 701C They are EveryWhere为例