方格填数--蓝桥杯---dfs
一,第六届蓝桥杯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的更多相关文章
- 蓝桥杯比赛javaB组练习《方格填数》
方格填数 如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+ ( ...
- DFS(深度优先搜索遍历求合格条件总数)--07--DFS--蓝桥杯方格填数
此题方法多种,我用规范的DFS来求解 题目:方格填数 如下的10个格子,填入0~9的数字.要求:连续的两个数字不能相邻. (左右.上下.对角都算相邻)一共有多少种可能的填数方案? 输出 请填写表示 ...
- java实现第七届蓝桥杯方格填数
方格填数 题目描述 如下的10个格子 +--+--+--+ | | | | +--+--+--+--+ | | | | | +--+--+--+--+ | | | | +--+--+--+ (如果显示 ...
- java算法 蓝桥杯(题+答案) 方格填数
6.方格填数 (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...
- java算法 第七届 蓝桥杯B组(题+答案) 6.方格填数
6.方格填数 (结果填空) 如下的10个格子 (如果显示有问题,也可以参看[图1.jpg]) 填入0~9的数字.要求:连续的两个数字不能相邻.(左右.上下.对角都算相邻) 一共有多少种可能的填数方案 ...
- 第七届蓝桥杯试题c/c++A组方格填数 回溯法
方格填数如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+(如果 ...
- 第七届蓝桥杯javaB组真题解析-方格填数(第六题)
题目 /* 方格填数 如下的10个格子 +--+--+--+ | | | | +--+--+--+--+ | | | | | +--+--+--+--+ | | | | +--+--+--+ (如果显 ...
- 第七届蓝桥杯JavaB组——第6题方格填数
解决方案:利用全排列和递归 使用Java中的集合API:HashMap ArrayList package com.lzp.lanqiaoseven.p6; import java.util.*; / ...
- c++_方格填数(最新方法)
方格填数 如下的10个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+ (如果显示有问题,也可以参 ...
随机推荐
- ServletContext作用功能详解.RP
ServletContext ServletContext,是一个全局的储存信息的空间,服务器开始,其就存在,服务器关闭,其才释放.request,一个用户可有多个:session,一个用户一个:而s ...
- VS2013中全局属性与局部属性的设置
为了更好的体现程序与库的独立性,vc++2013 中库路径设置不再采用全局设置,就是说在每个工程中都可以有自己独立的库路径设置,当然你如果不设置,那默认就是vs2013自己的库路径.但是如果你需要用到 ...
- Laravel 的 make:auth Artisan 命令到底生成了哪些文件?
众所周知,在 Laravel 中执行 $ php artisan make:auth $ php artisan migrate 命令后,我们就能拥有一个完整的登录.注册认证系统,这为开发带来极大的便 ...
- 现代C++学习笔记之一入门篇:智能指针(C++ 11)
原始指针:通过new建立的*指针 智能指针:通过智能指针关键字(unique_ptr, shared_ptr ,weak_ptr)建立的指针 在现代 C++ 编程中,标准库包含智能指针,该指针用于确保 ...
- day08.2-ssh远程连接服务
在Linux环境中,部署一个服务的一般步骤: a). 准备环境,包括 关闭防火墙:service iptables stop(或chkconfig iptables off) 关闭se ...
- SQL数据库查询语言(1)
目录 MySQL数据库 MySQL安装与配置 DDL数据定义语言 创建数据库 查看.删除数据库 修改.备份.恢复数据库 创建表 修改表 MySQL常用数据类型 DML数据操纵语言 Insert语句 m ...
- python3好用的requests库
python3好用的requests库 requests是什么? requests是基于urllib编写的http库,支持python3,比urllib更好用,更简单.之前使用python写一些htt ...
- Kubernetes 集群部署(4) -- Node 部署
以下无特殊说明,都是在 Node 节点运行 1. 创建文件 vim /opt/k8s/cfg/kubelet.conf,内容如下: KUBELET_OPTS="--logtostderr=t ...
- java大数据批量处理实现方式
1. 各批量方式对比 Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案 2. 原理解析 1)MySql PreparedStatement executeBatch过慢问题 3. 工 ...
- soapui
webservice 的请求可使用工具:soapui 天气预报的接口地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsd ...