一,第六届蓝桥杯C语言初赛

答案:1580

相似题目:N皇后问题

注意要枚举的是什么

#include<iostream>
#include<string.h>
using namespace std;
int a[][],vis[],dir[][]={{,-},{-,-},{-,},{-,}};
int cnt=;
int check(int x,int y,int num)
{
for(int i=;i<;i++)
{
int tx,ty;
tx=x+dir[i][];
ty=y+dir[i][];
if(tx>=&&tx<&&ty>=&&ty<)
{
if(a[tx][ty]==num-||a[tx][ty]==num+)//不相邻
return ;
}
}
return ;
} void dfs(int x,int y)
{
if(x==&&y==)
{
cnt++;
return;
}
if(y>)//当前行搜索完
dfs(x+,);
else
{
for(int i=;i<;i++)
{ if(check(x,y,i)&&!vis[i])//在棋盘上并且没有相邻/这个数字没有用过
{
a[x][y]=i;
vis[i]=;
dfs(x,y+);
a[x][y]=;//回溯
vis[i]=;
}
}
}
}
int main()
{
memset(vis,,sizeof(vis));
for(int i=;i<;i++)
{
for(int j=;j<;j++)
{
a[i][j]=;
}
}
dfs(,);
cout<<cnt<<endl;
return ;
}

二、第六届C语言蓝桥杯决赛

答案:42

题解一:模拟+暴力

//答案:42
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
int main()
{
int a[],mp[][];
mp[][]=mp[][]=;//处理边界
for(int i=;i<;i++)
mp[][i]=;
for(int i=;i<;i++)
a[i]=i+;
int ans=;
do
{
if(a[]<a[]&&a[]<a[]&&a[]<a[]&&a[]<a[])
{
if(a[]<a[]&&a[]<a[]&&a[]<a[]&&a[]<a[])
{
if(a[]<a[]&&a[]<a[]&&a[]<a[]&&a[]<a[]&&a[]<a[])
ans++;
}
}
}while(next_permutation(a,a+));
cout<<ans<<endl;
//system("pause");
return ;
}

题解二:DFS(过程同上题)

#include<iostream>
#include<string>
#include<string.h>
using namespace std;
int a[][], vis[];
int cnt = ;
int check(int x, int y)
{
if(x==&&y==)//注意边界
return ;
else if(x==&&y==&&a[][]>a[][])
return ;
else if(x==&&a[x][y-]<a[x][y])
return ;
else if(x==&&a[x][y-]<a[x][y]&&a[x-][y]<a[x][y])
return ;
else
{
return ;
} } void dfs(int x, int y)
{
if (x == )//棋盘放满
{
cnt++;
return;
}
if (y > )//当前行搜索完
dfs(x + , );
else
{
for (int i = ; i <= ; i++)
{ if (vis[i]==)//这个数字没有用过,并且符合条件
{
a[x][y] = i;
vis[i] = ;
if(check(x,y))
dfs(x, y + );
vis[i] = ;//回溯
}
}
}
}
int main()
{
memset(vis, , sizeof(vis));
dfs(, );
cout << cnt << endl;
system("pause");
return ;
}

方格填数--蓝桥杯---dfs的更多相关文章

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

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

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

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

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

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

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

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

  5. java算法 第七届 蓝桥杯B组(题+答案) 6.方格填数

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

  6. 第七届蓝桥杯试题c/c++A组方格填数 回溯法

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

  7. 第七届蓝桥杯javaB组真题解析-方格填数(第六题)

    题目 /* 方格填数 如下的10个格子 +--+--+--+ | | | | +--+--+--+--+ | | | | | +--+--+--+--+ | | | | +--+--+--+ (如果显 ...

  8. 第七届蓝桥杯JavaB组——第6题方格填数

    解决方案:利用全排列和递归 使用Java中的集合API:HashMap ArrayList package com.lzp.lanqiaoseven.p6; import java.util.*; / ...

  9. c++_方格填数(最新方法)

      方格填数 如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+ (如果显示有问题,也可以参 ...

随机推荐

  1. Apache fcgistarter命令

    一.简介 fcgistarter命令用于启动FastCGI程序. 二.语法 fcgistarter -c command -p port [ -i interface ] -N num 参考:http ...

  2. 数字图像处理实验(17):PROJECT 06-04,Color Image Segmentation 标签: 图像处理MATLAB 2017-05-27 21:13

    实验报告: Objective: Color image segmentation is a big issue in image processing. This students need to ...

  3. bootstrap实现菜单定位

    <!DOCTYPE html><html lang="zh-cn"><head><meta charset="utf-8&quo ...

  4. OSG3.2+Qt5.2.1+VS2012+OSGEarth 2.5编译问题记录

    问题1:CMake Error at D:/Qt/Qt5.2.1/5.2.1/msvc2012_64_opengl/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake: ...

  5. javascript总结13:循环语句

    1 While循环 While(条件表达式){ 只要条件表达式结果为true,循环一直执行,当条件表达式结果为false的时候,循环终止 } While循环语句需现在循环体外定义变量. 2 for循环 ...

  6. Matrix和Camera配合实现3D效果

    一.Camera与Matrix简单介绍 1.Camera Android中一共有两个Camera,分别为:android.graphics.Camera android.hardware.Camera ...

  7. 【转】android 手势识别和VelocityTracker

    参考地址: http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1020/448.html http://www.jcodecraeer.co ...

  8. Django-项目上线后,静态文件配置失效以及404、500页面的全局配置

    https://blog.csdn.net/Jamin2018/article/details/79060509 https://www.cnblogs.com/lfoder/p/6013142.ht ...

  9. asp.netcore+jenkins+docker+svn+centos7.2 持续集成,每天凌晨获取最新代码打包发布

    运行环境: centos7.2服务器或则虚拟机 可以是腾讯云也可以是内网服务器,(如果是内网服务器需要用frp做内网穿透,这样才可以通过外网访问该服务器) svnserver 来托管代码 一.安装je ...

  10. tomcat访问日志关闭

    在tomcat(实例)路径下[conf/server.xml]中修改,以下节点(注释掉该节点): tomcat catalina.out日志关闭 在tomcat(主目录)路径下[bin/catalin ...