如下的10个格子(参看【图1.jpg】)
填入0~9的数字。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻)

一共有多少种可能的填数方案?

请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

 
#include <iostream>
#include <cmath>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
using namespace std; const int INF = ;
const int ROW = , COL = ;
int dir[][] = {{-, }, {-, }, {, }, {, },
{, }, {, -}, {, -}, {-, -}};
int ans;
bool used[ROW][COL];
int maze[ROW][COL];
void input();
bool check( int r, int c);
bool judge(int r, int c);
void solve();
int a[] = {, , , , , , , , ,}; void input()
{
maze[][] = maze[][] = INF;
memset(used, false, sizeof(used));
} bool judge(int r, int c)
{
return (r >= && r < ) && (c >= && c < );
} //判断
bool check(int r, int c)
{
if (r == && c == ) return false;
if (r == && c == ) return false;
for (int k = ; k < ; k++) {
int nx = r + dir[k][], ny = c + dir[k][];
if (judge(nx, ny) && abs(maze[nx][ny] - maze[r][c]) == ) {
return false;
}
}
return true;
} void solve()
{
input();
do {
int i, j;
     //这里就是 把全排列形成的数字, 按照 如此放在格子中
     // INF 0 0 0
// 0 0 0 0
   // 0 0 0 INF
   for (i = ; i < COL; i++) {
maze[][i] = a[i-];
}
for (j = ; j < COL; j++) {
maze[][j] = a[COL + j - ];
}
for (j = ; j < COL - ; j++) {
maze[][j] = a[COL * + j - ];
} int flag = true;
for (i = ; i < ROW; i++) {
for (j = ; j < COL; j++) {
if (!check(i, j) && (i != || j != ) && (i != || j != )) {
flag = false;
goto num;
}
}
}
num:
if (flag) {
ans++;
}
} while (next_permutation(a, a + )); cout << ans << endl;
} int main()
{
solve();
return ;
}
//使用全排列,将不同组合的数字,分别放到10个格子中。 //然后对10个格子枚举,判断每个格子的周围是否有与之连续的数字,有则跳出整个循环,可以使用goto,会简单些 //判断完10个格子都没有相邻数字重复的,则说明,方案数++

蓝桥杯 方格填数 DFS 全排列 next_permutation用法的更多相关文章

  1. 第七届 蓝桥杯 方格填数 dfs

    如下的10个格子  填入0~9的数字.要求:连续的两个数字不能相邻. (左右.上下.对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数. 注意:你提交的应该是一个整数,不要填写任何 ...

  2. java实现第七届蓝桥杯方格填数

    方格填数 题目描述 如下的10个格子 +--+--+--+ | | | | +--+--+--+--+ | | | | | +--+--+--+--+ | | | | +--+--+--+ (如果显示 ...

  3. DFS(深度优先搜索遍历求合格条件总数)--07--DFS--蓝桥杯方格填数

    此题方法多种,我用规范的DFS来求解 题目:方格填数 如下的10个格子,填入0~9的数字.要求:连续的两个数字不能相邻. (左右.上下.对角都算相邻)一共有多少种可能的填数方案?   输出 请填写表示 ...

  4. java实现第三届蓝桥杯方块填数

    方块填数 "数独"是当下炙手可热的智力游戏.一般认为它的起源是"拉丁方块",是大数学家欧拉于1783年发明的. 如图[1.jpg]所示:6x6的小格被分为6个部 ...

  5. java实现第六届蓝桥杯五星填数

    五星填数 如[图1.png]的五星图案节点填上数字:1~12,除去7和11. 要求每条直线上数字和相等. 如图就是恰当的填法. 请你利用计算机搜索所有可能的填法有多少种. 注意:旋转或镜像后相同的算同 ...

  6. java实现第七届蓝桥杯七星填数

    七星填数 如图[图1.png]所示. 在七角星的14个节点上填入1~14 的数字,不重复,不遗漏. 要求每条直线上的四个数字之和必须相等. 图中已经给出了3个数字. 请计算其它位置要填充的数字,答案唯 ...

  7. 2015蓝桥杯五星填数(C++C组)

    题目:五星填数 如[图1.png]的五星图案节点填上数字:1~12,除去7和11.要求每条直线上数字和相等.如图就是恰当的填法.请你利用计算机搜索所有可能的填法有多少种.注意:旋转或镜像后相同的算同一 ...

  8. java算法 蓝桥杯(题+答案) 方格填数

    6.方格填数  (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...

  9. 蓝桥杯比赛javaB组练习《方格填数》

    方格填数 如下的10个格子   +--+--+--+   |  |  |  |+--+--+--+--+|  |  |  |  |+--+--+--+--+|  |  |  |+--+--+--+ ( ...

随机推荐

  1. Linux(Red hat)无网离线安装TensorFlow

    文件下载 首先,下载想要安装的版本,目前最新的是1.8.0 根据你的python版本下载对应的whl文件,下载连接:https://pypi.org/project/tensorflow/#files ...

  2. 解决在Mac上用pyenv安装python3失败的问题

    背景 前段时间在本地Mac系统上要跑一个python3写的压测脚本. Mac默认安装的是python2, 而且很多软件依赖的也是python2. 为了不影响现有系统其它软件, 当时安装了pyenv来实 ...

  3. Beta阶段 敏捷冲刺day1

    一.提供当天站立式会议照片一张: 二. 每个人的工作 (有work item 的ID) (1) 昨天已完成的工作: (2) 今天计划完成的工作: 今天大家一起讨论了一下之后几天的任务,以及如何对网页进 ...

  4. win7系统安装SQLServer2000的详细步骤(图文)

    首先,如果以前安装的话,要删除干净.我也找了半天的网络资料.1.把原来SQLServer的安装目录 C:\Program Files\Microsoft SQL Server  删除2.所有SQLSe ...

  5. json数据进行格式化

    <?php /** Json数据格式化 * @param Mixed $data 数据 * @param String $indent 缩进字符,默认4个空格 * @return JSON */ ...

  6. vSphere下安装Hyper-V

    在vSphere 5.5中默认是无法嵌套安装Hyper-V的,必须在vSphere中稍作修改. 1. 勾选这两个选项,如果是灰色,请升级虚拟机版本至最新: 2. 在配置文件中手动加入这一行参数: 3. ...

  7. 笔记之分布式文件系统(DFS)

    不知何故,老外都挺喜欢使用DFS,但是国内公司用这个的不多.一个具体的需求就是,备份服务器在国外,所以启用DFS把国内的数据同步一份到国外进行备份.最近有机会接触DFS,把一些心得体会记录一下. 1. ...

  8. jdk10配置

    解压 vi /etc/profile JAVA_HOME=/home/elasticsearch/jdk- CLASSPATH=$JAVA_HOME/lib/ PATH=$PATH:$JAVA_HOM ...

  9. eclipse 导入 gradle 项目遇到 UnsupportedConfigurationException 异常

    异常描述: org.eclipse.buildship.core.UnsupportedConfigurationException: Project at 'D:\XXXX_workspace\XX ...

  10. HTML之绝对路径与相对路径

    路径指文件存放的位置,在网页中利用路径可以引用文件,插入图像.视频等.表示路径的方法有两种:相对路径,绝对路径.以下讨论均是在HTML环境下进行. 相对路径 相对路径是指目标相对于当前文件的路径,网页 ...