HDU杭电1426-Realtime Status 数独问题
来源:互联网 发布:java中工厂模式是什么 编辑:程序博客网 时间:2024/06/05 18:25
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1426
/****************************
第一次做数独问题,没做之前觉得就是一个搜索题,然而写起代码来就错误重重了!
问号的输入我用了字符串接收(%s),详见代码。
dfs。深搜即可
在提交题目时注意,不同的示例之间空一行。最后结束前的一组后面没有空行。
我的代码提交时间是889MS,效率欠佳。
/******************************************
代码如下:
/*****************
#include<stdio.h>int map[10][10];int w[88];//记录问号位置int e; //记录问号个数 int myscanf()//矩阵的输入{e=0;char x[3];for(int i=1;i<=9;i++)for(int j=1;j<=9;j++){if(scanf("%s",x)==EOF)return 0;if(x[0]!='?'){map[i][j]=x[0]-'0';}else{map[i][j]=0;//代表问号w[e++]=i*10+j;}}return 1; } void output(){for(int i=1;i<=9;i++){for(int j=1;j<=8;j++){printf("%d ",map[i][j]);}printf("%d\n",map[i][9]);}}int ok(int a,int b,int k)//检查k能否填在位置ab {for(int i=1;i<=9;i++)//检查行{if(k==map[a][i])return 0;}for(int i=1;i<=9;i++)//检查列{if(k==map[i][b])return 0;}a=(a-1)/3*3+1;b=(b-1)/3*3+1;for(int i=a;i<=a+2;i++)//检查小九宫格{for(int j=b;j<=b+2;j++){if(k==map[i][j])return 0;}}return 1;}void dfs(int a)//w[a]的十位数和个位数代表位置{int k=w[a]/10,l=w[a]%10;if(a==e)//全填完了{output();return;}//填数for(int i=1;i<=9;i++)//把i填进去 {if(ok(k,l,i))//i可以填在此处 {map[k][l]=i;dfs(a+1);map[k][l]=0;}}}int main(){int flag=0;while(myscanf())//矩阵输入 {if(flag++)puts("");//空行的输出dfs(0);}return 0;}
0 0
- HDU杭电1426-Realtime Status 数独问题
- hdu 2492 Realtime Status
- hdu - 数独问题
- HDU 1426 数独
- HDU 1426 数独
- HDU-1426 数独 搜索
- hdu 1426 数独, dfs
- hdu 1426 Sudoku Killer(DFS 数独问题)
- hdu Problem-1426数独问题(dfs+回溯+枚举)
- HDU 3007 Realtime Status 最小圆覆盖
- hdu 3660 Realtime Status(树形dp)
- hdu(1426) Sudoku Killer 数独
- HDU 1426 Sudoku Killer DFS数独
- [HDU 1426] Sudoku Killer 数独
- HDU 1426 Sudoku Killer (DFS 数独)
- HDU 3909 数独
- 数独问题思考
- 数独问题
- PyCharm、Python、Django安装以及环境变量配置(Windows)
- VMware Fusion Pro 8 for Mac 启动出现“内部错误” 解决方案
- git-重新关联/切换远端分支
- Thinkpad 笔记本VMware Workstation 安装虚拟机出现“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”解决方法
- PAT 1047
- HDU杭电1426-Realtime Status 数独问题
- HM编码器代码阅读(46)——SAO总结
- B-树 构建
- 多媒体拍照+摄像
- MySQL高可用性之Keepalived+Mysql
- 多项式输出
- android弹出窗口-----dialog半透明、透明的圆角activity
- 语言模型(N-Gram)
- Android温习 —— 内存