题目链接:https://www.luogu.org/problemnew/show/P1784

因为要求行列以及每9个数字组成的中格子都得有1-9这9个数,我们不妨建三个二维数组

第一维代表是第几个行/列/中格子,第二维是具体数字,然后数组为1就代表第二维的数字已经有了,为0就是没有

dfs按照从左到右,从上到下的顺序来遍历

另外,存中格子的的时候1-9也是按照这个顺序来的,用(i-1)/3*3+(j-1)/3+1来表示这是第几个中格子

#include <bits/stdc++.h>
using namespace std;
const double pi=acos(-);
const int mod=1e9+;
const int maxn=1e5+;
typedef long long ll;
int a[][];
bool h[][],l[][],g[][];//三个数组分别代表行列和组,第一维是行列组的下标,第二维是1-9的莫个数,为0说明还不存在,1存在
void print(){
for(int i=;i<;i++){
for(int j=;j<;j++)
printf("%d ",a[i][j]);
printf("%d\n",a[i][]);
}
exit();
}
void dfs(int x,int y){
if(a[x][y]){
if(x==&&y==)print();
if(y==) dfs(x+,);//从左到右,从上到下,依次遍历
else dfs(x,y+);
}
else{
for(int i=;i<=;i++){
if(!h[x][i]&&!l[y][i]&&!g[(x-)/*+(y-)/+][i]){
h[x][i]=;l[y][i]=;g[(x-)/*+(y-)/+][i]=;
a[x][y]=i;
if(x==&&y==)print();
if(y==) dfs(x+,);
else dfs(x,y+);
h[x][i]=;l[y][i]=;g[(x-)/*+(y-)/+][i]=;
a[x][y]=;
}
}
}
}
int main(){
for(int i=;i<=;i++){
for(int j=;j<=;j++){
scanf("%d",&a[i][j]);
if(a[i][j]>){
h[i][a[i][j]]=;
l[j][a[i][j]]=;
g[(i-)/*+(j-)/+][a[i][j]]=;
} //cout<<233<<endl;
}
}
dfs(,);
return ;
}

填写数独 洛谷P1784的更多相关文章

  1. 洛谷P1784 数独

    To 洛谷.1784 数独(类似(或者说相同)题:CODEVS.4966 简单数独(4*4数独) CODEVS.2924 数独挑战) 题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数 ...

  2. 洛谷 P1784 数独[DFS/回溯]

    To 洛谷.1784 数独类似题:CODEVS.4966 简单数独(4*4数独) CODEVS.2924 数独挑战) 题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行 ...

  3. 洛谷 P1784 数独

    题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字均含1-9,不重复.每一道合格的数独谜题都有且仅有唯一答案,推理方法也以此为基础,任何无 ...

  4. 洛谷—— P1784 数独

    https://www.luogu.org/problem/show?pid=1784 题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行.每一列.每一个粗线宫内的数字 ...

  5. 洛谷P1074 靶形数独 [搜索]

    题目传送门 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了 ...

  6. [洛谷P1074] 靶形数独

    洛谷题目链接:靶形数独 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博 ...

  7. 【题解】洛谷P1074 [NOIP2009TG] 靶形数独(DFS+剪枝)

    洛谷P1074:https://www.luogu.org/problemnew/show/P1074 思路 这道题一看就是DFS 打一个分数表方便后面算分 我用x y z数组分别表示行 列 宫 是否 ...

  8. 洛谷P3369普通平衡树(Treap)

    题目传送门 转载自https://www.cnblogs.com/fengzhiyuan/articles/7994428.html,转载请注明出处 Treap 简介 Treap 是一种二叉查找树.它 ...

  9. 【noip】跟着洛谷刷noip题

    传送门 1.铺地毯 d1t1 模拟 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> # ...

随机推荐

  1. Oracle11g 配置DG broker

    在配置DG broker之前需要确保Dataguard配置正常且主库和备库均使用spfile. 1. 主库配置 配置DG_BROKER_START参数 检查主库dg_broker_start设置 SQ ...

  2. C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别

    1.虚函数(impure virtual) C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现. 子类可以重写父类的虚函数实现子类的特殊化. 如下就是一个父类中的 ...

  3. 1、js比较日期的大小

    ① html <div class="ptb10"><span>共享开始时间:</span><input type="text& ...

  4. 【托业】【新东方托业全真模拟】TEST07~08-----P5~6

    unless ---conj:barring(除非,不包括)perp+名词短语 be capable of doing 有能力做某事 qualified commensurate with 与……相应 ...

  5. Vuex入门(5)—— 为什么要用Action管理异步操作

    Action 类似于 mutation,不同在于: 1.Action 提交的是 mutation,而不是直接变更状态. 2.Action 可以包含任意异步操作. 官方给的定义我没什么意见,事实上我通过 ...

  6. python框架之Flask(4)-上下文管理

    知识储备 偏函数 作用 偏函数,帮助开发者自动传递参数. 使用 import functools def index(a1, a2): return a1 + a2 # 原来的调用方式 # ret = ...

  7. linux查看cpu个数,线程数及cpu型号

    1.查看CPU逻辑id grep 'physical id' /proc/cpuinfo | sort -u physical id : 0physical id : 1 2.查看物理CPU个数 $ ...

  8. 关于Oracle 10.2.0.5 版本应用SCN补丁14121009相关问题

    环境:OEL 5.7 + Oracle 10.2.0.5 背景:Oracle发布的两篇关于2019年6月份将自动调整高版本数据库的SCN COMPATIBILITY的MOS文章引起了很多客户的恐慌,尤 ...

  9. python_json序列化和反序列化

    序列化 import json dic = {'} print(json.dumps(dic)) 反序列化;json.loads() dic = {'} print(json.dumps(dic)) ...

  10. Future 示例

    public static Object send(RequestClient request) future.channel().writeAndFlush(JSONObject.toJSONStr ...