POJ 2676
来源:互联网 发布:originlab软件下载 编辑:程序博客网 时间:2024/06/18 11:12
http://poj.org/problem?id=2676
#include <cstdio>#include <iostream>#include <vector>#include <queue>#include <cstring>#include <map>using namespace std;typedef long long ll;int a[10][10];char ca[10][10];int flag;bool check(int x, int y){ for (int i = 0; i < 9; i++) { if (x != i && a[x][y] == a[i][y]) return false; if (y != i && a[x][y] == a[x][i]) return false; } int xx = x/3*3; int yy = y/3*3; for (int i = xx; i < xx+3; i++) { for (int j = yy; j < yy+3; j++) { if (i != x && j != y && a[x][y] == a[i][j]) return false; } } return true;}void dfs(int k){ if (k == 81) { for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { printf("%d", a[i][j]); } printf("\n"); } flag = 1; return; } int x = k/9; int y = k%9; if (!a[x][y]) { for (int i = 1; i <= 9; i++) { a[x][y] = i; if (check(x, y)) { dfs(k+1); } if (flag) return; a[x][y] = 0; } } else { dfs(k+1); if (flag) return; }}void record(int row, string val){ for (int i = 0; i < 9; i++) { a[row][i] = val[i]-'0'; } }int main(){ int T; string val; scanf("%d", &T); while (T--) { memset(a, 0, sizeof(a)); for (int i = 0; i < 9; i++) { cin >> val; record(i, val); } flag = 0; dfs(0); //注意最后如果还是没有找到,就输出原来的。 if (!flag) { for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { printf("%d", a[i][j]); } printf("\n"); } } } return 0;}
0 0
- POJ 2676
- POJ 2676
- poj-2676
- poj 2676
- poj 2676
- Poj 2676
- poj 2676
- POJ 2676
- POJ 2676
- POJ 2676 && POJ 2918 数独 DFS
- poj 2676 Sudoku
- POJ 2676 Sudoku
- POJ 2676 Sudoku dfs
- POJ 2676 数独
- Poj 2676 Sudoku
- POJ 2676 Sudoku [暴搜]
- POJ 2676 Sudoku
- POJ 2676 Sudoku
- Python三
- JAVA——Object类,equals方法
- hibernate查询语言
- 《剑指offer》——面试题29:数组中超过一半的数
- 第八届acm山东省赛总结
- POJ 2676
- 欢迎使用CSDN-markdown编辑器
- Codeforces Round #403 (Div. 2) B 二分 or 三分
- 算法笔记(VI) 模式匹配
- 关于hashCode,你一定听说过会重复,那么你见过2个不同的字符串hashCode值却是相同的吗
- 没解决问题:library "/system/lib/libhwuibp.so" not found
- U3D 脚本的执行周期
- 最少步数 ny-58
- 51Nod 1018 排序