hdu 3111 Sudoku(DFS数独)
来源:互联网 发布:文华财经 mac版 编辑:程序博客网 时间:2024/05/16 12:48
题目链接:hdu3111
果断水过....
#include<stdio.h>int map[9][9];int flag,num;struct node{ int x,y;}s[81];bool judge(int t,int cur){ int i,j; for(i = 0 ; i < 9 ;i ++) if( map[i][ s[cur].y ] == t || map[ s[cur].x ][i] == t) return 0; int x = s[cur].x/3*3; int y = s[cur].y/3*3; for(i = 0 ; i < 3 ; i ++) for(j = 0 ; j < 3 ; j ++) if(map[x + i][y + j] == t) return 0; return 1;}void dfs(int cur){ int i; if(cur == num) { flag = 1; return ; } if(flag) return; for(i = 1 ; i <= 9 ; i++) if(judge(i,cur) && !flag) { map[ s[cur].x ][ s[cur].y ] = i; dfs(cur + 1); if(flag) return ; map[ s[cur].x ][ s[cur].y ] = 0; }}int main(){ //freopen("in.txt","r",stdin); int T,i,j,p = 0; char a[10]; scanf("%d",&T); while(T--) { num = 0; if(p)scanf("%s",a); for(i = 0 ; i < 9 ; i ++) { scanf("%s",a); for(j = 0 ; j < 9 ; j ++) { if(a[j] == '?') { s[num].x = i; s[num].y = j; num ++; map[i][j] = 0; continue; } map[i][j] = a[j] - '0'; } } flag = 0; dfs(0); if(p) printf("---\n"); if(flag) { for(i = 0 ; i < 9 ; i ++) { for(j = 0 ; j < 9 ; j ++) { printf("%d",map[i][j]); } printf("\n"); } } else printf("impossible\n"); p ++; } return 0;}
- hdu 3111 Sudoku(DFS数独)
- hdu 1426 Sudoku Killer(DFS 数独问题)
- hdu 2780 Su-Su-Sudoku(DFS数独)
- hdu 1426 Sudoku Killer(数独 dfs)
- HDU 1426 Sudoku Killer DFS数独
- HDU 1426 Sudoku Killer (DFS 数独)
- POJ 2676-Sudoku(DFS-数独)
- 【POJ 2676】Sudoku数独(DFS)
- Sudoku 数独问题(dfs)
- hdu 2780 Su-Su-Sudoku (dfs解的数独)
- Sudoku Killer(数独DFS+恶心的输入输出!!!)
- hdu1426 Sudoku Killer(数独游戏)--DFS
- POJ 2676 Sudoku (数独求解器 DFS)
- POJ 2676 Sudoku (数独 DFS)
- [DFS]poj 2676 Sudoku 数独问题
- CDOJ 1222--Sudoku【DFS && 数独】
- CDOJ 1222--Sudoku【DFS && 数独】
- hdu1426数独游戏Sudoku Killer DFS
- 设计模式(Java版)第一讲 概要
- Sprite Kit学习笔记(三)SKAction
- pwd的实现
- 我的项目管理经验总结
- struts2源码之struts.xml的初始化
- hdu 3111 Sudoku(DFS数独)
- Hdu 2222 Keywords Search
- Spring中的@Transactional配置
- MyEclipse9.0配置Jboss服务器(图解)
- Android 应用窗口 Surface的创建
- 18 个最好的CSS框架用于提高开发效率
- 【分享】不为人知的Word主控文档设置
- Linux基础知识(一)
- 前端开发:模块化 — 高效重构