数独(DFS)。

非常忧伤的一道题,先是剪枝的三个数组开成[9][9]导致 越界了WA。

然后就是每两组输出之间有空行,可是最后一组后面不能输出空行。PE好多次。

#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<stack>
#include<iostream>
#include<list>
#include<set>
#include<cmath>#define INF 0x7fffffff
#define eps 1e-8
#define LL long long
#define PI 3.141592654
#define CLR(a,b) memset(a,b,sizeof(a))
#define FORi(n) for(int i=0;i<n;i++)
#define FORj(n) for(int j=0;j<n;j++)
#define FORk(n) for(int k=0;k<n;k++)
#define debug puts("==fuck==")
#define acfun std::ios::sync_with_stdio(false)#define SIZE 1000+10
using namespace std;int g[9][9];
bool visx[9][10],visy[9][10],box[9][10];
void show()
{FORi(9){FORj(8)printf("%d ",g[i][j]);printf("%d\n",g[i][8]);}
}
void dfs(int n)
{if(n>80)show();else{int i=n/9,j=n%9;if(!g[i][j]){for(int k=1; k<=9; k++)if(!visx[i][k]&&!visy[j][k]&&!box[i/3*3+j/3][k]){g[i][j]=k;visx[i][k]=visy[j][k]=box[i/3*3+j/3][k]=1;dfs(n+1);g[i][j]=0;visx[i][k]=visy[j][k]=box[i/3*3+j/3][k]=0;}}elsedfs(n+1);}
}
int main()
{char ch[5];bool flag=0;while(~scanf("%s",ch)){CLR(visx,0);CLR(visy,0);CLR(box,0);if(ch[0]>='1'&&ch[0]<='9')g[0][0]=ch[0]-'0';else if(ch[0]=='?')g[0][0]=0;if(g[0][0])visx[0][g[0][0]]=visy[0][g[0][0]]=box[0][g[0][0]]=1;FORi(9)FORj(9){if(i==0&&j==0)continue;scanf("%s",ch);if(ch[0]>='1'&&ch[0]<='9')g[i][j]=ch[0]-'0';else if(ch[0]=='?')g[i][j]=0;if(g[i][j])visx[i][g[i][j]]=visy[j][g[i][j]]=box[i/3*3+j/3][g[i][j]]=1;}if(!flag)flag=1;else printf("\n");dfs(0);}
}

转载于:https://www.cnblogs.com/gcczhongduan/p/4094346.html

HDU 1426 Sudoku Killer相关推荐

  1. HDU 1426 Sudoku Killer【DFS 数独】

    自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视.  据说,在2008北京奥运会上,会将数独列为一个单独的项目进行比赛,冠军将有可能获得的一份巨大的奖品 ...

  2. HDU 1476 Sudoku Killer

    Sudoku Killer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  3. 杭电oj 1426 Sudoku Killer(深度优先搜索 回溯)

    Sudoku KillerTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  4. HDU1426 Sudoku Killer DFS

    点击打开链接 Sudoku Killer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  5. Sudoku Killer(HDU-1426)

    Problem Description 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为一个单独的项目进行 ...

  6. HDU 1426(数独)

    刚刚看到很多人都用DFS+剪枝做数独.. 顿时不爽了, 我家DLX 何在... 不过想想确实这个搜索剪枝真的很多,不过怎么说还是DLX 快... #include <stdio.h> #i ...

  7. hdu1426 Sudoku Killer

    简单的DFS,将所有未填的位置依次保存起来,之后,对每一个未填的位置依次枚举,往下搜即可 :: 本来想用DLX的做的,hdu3111是过了,可是原先那个模板在这道题里就是超时,不解啊,换一个模板就过了 ...

  8. 杭电OJ分类题目(1)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(1) HDU Introduction HDU ...

  9. HDU-基础搜索总结

    Dfs: 1241 Oil Deposits 题解:https://blog.csdn.net/HeZhiYing_/article/details/81053035 1016 Prime Ring ...

最新文章

  1. 简述事件接口与事件适配器的联系与区别_设计模式——适配器模式
  2. 活动目录的设计及部署方法
  3. bzoj 1632: [Usaco2007 Feb]Lilypad Pond【bfs】
  4. thinkpad笔记本散热风扇_极致的散热体验,ORICO 全铝DIY双风扇笔记本散热垫评测...
  5. hibernate mysql 配置文件_hibernate 框架的配置文件和映射文件以及详解
  6. linux 解压安卓kernel,android kernel | 环境搭建 + 第一次尝试
  7. 2月第3周全球五大顶级域名总量净减6.1万个 降幅明显
  8. 真假难辨,AI就能分得清?
  9. java中类模型_java中的数据模型类
  10. SQL Server 获取日期是星期周几(默认从周日开始到周六 1-7)
  11. 个图标当十个用—多功能系统级图标制作攻略
  12. GDI+处理带透明区域的png图片
  13. 做情绪的主人,痛苦是人生的催化剂
  14. ai人工智能_AI如何帮助截肢者?
  15. 域名抢注代码_如何停止域名抢注攻击
  16. cmd模式下cd目录,文件夹命名有空格无法切换问题解决方法
  17. 小程序中实现用户的登录与注册
  18. K2P刷机教程转自恩山磨人的小妖精
  19. Android 多种限定符
  20. 银行使用计算机和网络实现个人存款,观察值与算术平均数的差数称为离均差,其总和为( )。...

热门文章

  1. 精通java图片_面试必备:详解Java I/O流,掌握这些就可以说精通了?
  2. 返回动态html,使用硒返回动态页面的html代码
  3. rabbitmq可靠性投递_解决RabbitMQ消息丢失问题和保证消息可靠性(一)
  4. python最简单的架构_Python实现简单状态框架的方法
  5. 运维基础(13)日志切割工具 Logrotate
  6. 如何复制粘贴_年终工作总结如何写?复制粘贴肯定不行啦
  7. 计算机二级c语言考生文件夹在哪,2017年全国计算机二级C语言考试题
  8. linux pmap命令,Linux pmap 命令用法详解-Linux命令大全(手册)
  9. edittext禁止换行符但能自动换行简书_使用n-gram创建自动完成系统
  10. ubuntu20分区_「图」Canonical希望Ubuntu 20.04 LTS Server Installer更快更舒适