方格填数--蓝桥杯---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个格子 +--+--+--+ | | | |+--+--+--+--+| | | | |+--+--+--+--+| | | |+--+--+--+ (如果显示有问题,也可以参 ...
随机推荐
- 使用pycharm运行调试scrapy
摘要 Scrapy是爬虫抓取框架,Pycharm是强大的python的IDE,为了方便使用需要在PyCharm对scrapy程序进行调试 python PyCharm Scrapy scrapy指令其 ...
- django 1.8 官方文档翻译:13-12 验证器
django 1.8 官方文档翻译:13-12 验证器 2015年09月20日 21:36:18 ApacheCN_飞龙 阅读数:639 https://blog.csdn.net/wizardfo ...
- input file 获取不到Request.Files 解决办法
<input type="file" name="xxxxxxx"/>必须有“name”属性,否则在后台代码中用Request.Files是取不到值 ...
- 编写高质量代码改善C#程序的157个建议——建议30:使用LINQ取代集合中的比较器和迭代器
建议30:使用LINQ取代集合中的比较器和迭代器 LINQ提供了类似于SQL的语法来实现遍历.筛选与投影集合的功能. static void Main(string[] args) { List< ...
- 引用母版页的内容页添加CSS文件
在内容页当中定义一个类然后调用内中的方法即可 public static class addstyle{ //可以不用实例化 public static void addstylesheet(Pag ...
- C#winform拖动无边框窗体
private bool isMouseLeftKeyDown = false; private Point mousePointToClient = new Point();//相对于本窗体鼠标位置 ...
- ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来
一个挺有意思的项目,跟拼图一样的创建网站,先来几张GIF感受一下: 官方地址:http://www.zkea.net/zkeacms 下载地址:https://github.com/SeriaWei/ ...
- tomcat访问日志关闭
在tomcat(实例)路径下[conf/server.xml]中修改,以下节点(注释掉该节点): tomcat catalina.out日志关闭 在tomcat(主目录)路径下[bin/catalin ...
- Stars in Your Window(线段树求最大矩形交)
题目连接 http://poj.org/problem?id=2482 Description Fleeting time does not blur my memory of you. Can it ...
- Ubuntu 14.04.3 LTS如何安装谷歌输入法
谷歌输入法项目主页:https://code.google.com/p/scim-googlepinyin/ 一,打开Ubuntu 的“Ubunru的软件中心”,在搜索里面输入“googlepinyi ...