代码:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <iomanip>
using namespace std;
int n;
int f[][];///记录每个位置的值 -1表示需要填
int check(int x,int y,int k) {
for(int i = ;i < ;i ++) {
if(i != x && f[i][y] == k)return ;
if(i != y && f[x][i] == k)return ;
}
int xx,yy;
for(int i = ;i < ;i ++) {
xx = x / * + i;
for(int j = ;j < ;j ++) {
yy = y / * + j;
if(!(xx == x && yy == y) && f[xx][yy] == k)return ;
}
}
return ;
}
void dfs(int x,int y) {//x代表行,y代表列,分别从0-8共9行(列)
if(x == ) {///x范围已过已经把表格填了一遍了 输出结果并返回
for(int i = ;i < ;i ++) {
for(int j = ;j < ;j ++) {
cout<<f[i][j]<<' ';
}
cout<<endl;
}
system("pause");
return;
}
int xx = x,yy = y;
f[x][y] = ;///如果保持-1 下面循环不会进行 循环后会恢复为-1
while(f[xx][yy] != -) {
if(xx >= )break;
xx = xx + (yy + ) / ,yy = (yy + ) % ;///每循环一次yy+1,也就是从当前(x,y)的位置往右一行一行的遍历 找到下一个需要填的位置
}
f[x][y] = -;
for(int i = ;i <= ;i ++) {
if(check(x,y,i)) {//当前填i可行的话 就dfs下一个需要填的位置(xx,yy)
f[x][y] = i;
dfs(xx,yy);
f[x][y] = -;//dfs终止表示这种策略不能dfs下去 位置值恢复为-1
}
}
}
int main() {
memset(f,-,sizeof(f));
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
f[][] = ;
for(int i = ;i < ;i ++) {
for(int j = ;j < ;j ++) {
if(f[i][j] == -)cout<<'*'<<' ';
else cout<<f[i][j]<<' ';
}
cout<<endl;
}
getchar();
dfs(,);
}

计蒜客 蓝桥模拟 F. 结果填空:数独的更多相关文章

  1. 计蒜客 蓝桥模拟 A. 结果填空:矩阵求和

    给你一个从 n×nn \times nn×n 的矩阵,里面填充 111 到 n×nn \times nn×n .例如当 nnn 等于 333 的时候,填充的矩阵如下.   1 1 2 3 2 4 5 ...

  2. 计蒜客 蓝桥模拟 B.素数个数

    用 0,1,2,3⋯70,1,2,3 \cdots 70,1,2,3⋯7 这 888 个数组成的所有整数中,质数有多少个(每个数字必须用到且只能用一次). 提示:以 000 开始的数字是非法数字. 代 ...

  3. 计蒜客 蓝桥模拟 I. 天上的星星

    计算二维前缀和,节省时间.容斥定理. 代码: #include <cstdio> #include <cstdlib> #include <cstring> #in ...

  4. 计蒜客 蓝桥模拟 H. 封印之门

    Floyd算法,最短路,判断a,b是否相等. 代码: #include <cstdio> #include <cstdlib> #include <cstring> ...

  5. 计蒜客 蓝桥模拟 G. 数列求值

    递归式移项得Ai+1 = 2Ai + 2Ci - Ai-1; 1.A2 = 2A1 + 2C1 - A0; 2.A3 = 2A2 + 2C2 - A1; . . . n.An+1 = 2An + 2C ...

  6. 计蒜客蓝桥杯模拟赛 后缀字符串:STL_map+贪心

    问题描述 一天蒜头君得到 n 个字符串 si​,每个字符串的长度都不超过 10. 蒜头君在想,在这 n 个字符串中,以 si​ 为后缀的字符串有多少个呢? 输入格式 第一行输入一个整数 n. 接下来  ...

  7. 计蒜客蓝桥杯模拟赛五J. 程序设计:放置守卫

    在一张 n 行 m 列的方格地图上放置一些守卫,每个守卫能守护上.左.右三个方向上相邻的方格和自己所在的方格.如下图,红色的方格放置守卫,绿色的方格为该守卫守护的区域. 现在要求在地图上放置若干个守卫 ...

  8. 计蒜客 蓝桥杯模拟 瞬间移动 dp

      在一个 n \times mn×m 中的方格中,每个格子上都有一个分数,现在蒜头君从 (1,1)(1,1) 的格子开始往 (n, m)(n,m) 的格子走.要求从 (x_1,y_1)(x1​,y1 ...

  9. 计蒜客 NOIP模拟赛(3) D1T1火山喷发

    火山喷发对所有附近的生物具有毁灭性的影响.在本题中,我们希望用数值来模拟这一过程. 在环境里有 nnn 个生物分别具有 A1,A2,⋯,An​​点生命值,一次火山喷发总计 M轮,每轮造成 1点伤害,等 ...

随机推荐

  1. Java第一次学习总结

    学习内容: 1.java是本学期刚刚接触新的一种编程语言,与大一C语言在语法上有很多相同之处,不同的是在很多问题上,更加简练,更加易于理解. 例如:输出水仙花数,从C语言近五十行代码缩短近十几行,数据 ...

  2. WPF Knowledge Points - 默认视图(DefaultView),CollectionSourceView,CollectionView的区别

    这些天一直在做一些关于Treeview的事情,想写出来一些用法和心得.说到集合对象的显示和表现,CollectionSourceView和CollectionView有着至关重要的作用,所以在写Tre ...

  3. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_02.三层架构和ssm框架的对应关系

  4. fiddler之请求过滤(Filters)

    开启fiddler后,会监听所有的请求,在大多数情况下,我们只需要监听部分请求,此时可以使用Filters功能去控制. 界面显示如下: 默认情况下过滤是未开启的,需要勾选“user filters”进 ...

  5. RabbitMQ使用(下)

    RabbitMQ从信息接收者角度可以看做三种模式,一对一,一对多(此一对多并不是发布订阅,而是每条信息只有一个接收者)和发布订阅.其中一对一是简单队列模式,一对多是Worker模式,而发布订阅包括发布 ...

  6. centos7配置NTP时间服务器

    Network Time Protocol--NTP时间服务器,用来同步网络中各个计算机时间的协议. 通常将一台服务器配置为时间服务器,然后集群内其他服务器都来同步这台服务器的时间. 目的:集群内所有 ...

  7. MySQL学习-数据库设计以及sql的进阶语句

    1.数据库设计 关系型数据库建议在E-R模型的基础上,我们需要根据产品经理的设计策划,抽取出来模型与关系,制定出表结构,这是项目开始的第一步 在开发中有很多设计数据库的软件,常用的如power des ...

  8. 13.DoS防御----BeEF浏览器渗透----暴力破解之美杜莎---DNS指南

    DoS防御 启用ICMP,UDP,TCP泛洪过滤 登录路由器管理后台 高级-安全部分 BeEF浏览器渗透 用kali进行客户端攻击 钓鱼攻击 打开beef 浏览器打开beef cd /usr/shar ...

  9. sourceInsight下标题栏显示文件完整路径

    用sourceInsight看代码方便,但是标题栏中不显示文件的完整路径,有时候就会很麻烦,做如下设置即可显示完整的路径 options -> preferences -> Display ...

  10. 使用Dockerfile制作镜像

    组成部分 基础镜像信息       FROM 维护者信息    MAINTAINER.LABEL 镜像操作指令       RUN.COPY.ADD.EXPOSE.WORKDIR.ONBUILD.US ...