2017蓝桥杯C++A:方格分割(DFS)
四、题目:方格分割
6x6的方格,沿着格子的边线剪开成两部分。
要求这两部分的形状完全相同。
如图:p1.png, p2.png, p3.png 就是可行的分割法。
试计算:
包括这3种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法.
- 分析思路:
仔细观察这个图会发现,它是关于中心点各个方向对称的
用DFS来就解决
解题的时候以左下方点为原点,用二维数组的方法
代码:
#include<iostream>
using namespace std;int ans;
int dire[][2]={{-1,0},{1,0},{0,-1},{0,1}}; //代表4个方向,上下左右
int vis[7][7]; //哪些点已被访问过
void dfs(int x,int y){if(x==0||y==0||x==6||y==6){ //终止出口条件,当走到边缘的时候,符合题意 ans++;return;}//当前的点标注为已访问的点vis[x][y]=1;//对称的点也标注为已访问的点vis[6-x][6-y]=1;for(int k=0;k<4;k++){int nx=x+dire[k][0]; //横坐标的增量 int ny=y+dire[k][1]; //纵坐标的增量 //新坐标if(nx<0||nx>6||ny<0||ny>6)continue; //越界,不符合 if(!vis[nx][ny]){ //若新的点未被访问过 dfs(nx,ny); //深搜 } }
vis[x][y]=0;
vis[6-x][6-y]=0; //对称
}
int main(){dfs(3,3); //初始点 cout<<ans/4<<endl;return 0;
}
答案:509
2017蓝桥杯C++A:方格分割(DFS)相关推荐
- 蓝桥杯2015决赛-方格填数-枚举 or dfs
题目描述 在2行5列的格子中填入1到10的数字. 要求:相邻的格子中的数,右边的大于左边的,下边的大于上边的. 如下图所示的2种,就是合格的填法. 请你计算一共有多少种可能的方案. 输出 请输出该整数 ...
- 2017蓝桥杯java B组纸牌三角形
2017蓝桥杯java B组纸牌三角形 1.标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算).要求每个边的和相等. 下图就是一种排法 A 9 6 4 8 ...
- [蓝桥杯2016初赛]方格填数-next_permutation
代码如下: #include <iostream> #include <algorithm> using namespace std;int main() {int a[10] ...
- 蓝桥杯T35 危险系数(DFS)
title: 蓝桥杯T35 危险系数(DFS) date: 2018-11-26 17:30:39 tags: [算法,蓝桥杯,DFS] categories: [算法] Description 抗日 ...
- 蓝桥杯c语言试题幸运数,蓝桥杯 历届试题 幸运数 dfs
时间限制:1.0s 内存限制:256.0MB 问题描述 幸运数是波兰数学家乌拉姆命名的.它采用与生成素数类似的"筛法"生成 . 首先从1开始写出自然数1,2,3,4,5,6,. ...
- 蓝桥杯考前的挣扎(DFS)
明天是18年的蓝桥杯,没怎么好好准备的我今天做了点什么?抓了一把DFS,因为做了15-17年的题感觉DFS是无奈之下最好用的算法吧.(毕竟暴力杯)但是从17年开始难度明显上升,仅仅靠DFS恐怕有点问题 ...
- 2017蓝桥杯省赛C++B组真题与题解
A:购物单 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦 ...
- 2017蓝桥杯等差素数(C++B组)
题目 : 等差素数列 2,3,5,7,11,13,....是素数序列. 类似:7,37,67,97,127,157 ...
- [蓝桥杯2017初赛]方格分割-dfs+思维
解题思路: 这是大佬的思路: 这道题可能上来会想到搜格子,但搜格子意味着更高的复杂度以及判连通的需要,本题似乎搜索要切开的边更优.由题意,这一条切割线必定经过图的中心点,那么我们一旦确定了半条到达边界 ...
最新文章
- javax.mail API
- 单靠MySQL进了字节,高端玩法才是王道!
- Ansible之使用角色一键部署httpd并检查部署结果
- C# 中的常用正则表达式总结
- 设置Jexus开机启动
- tomcat优化-有改protocol 和 缓存 集群方案
- 用面向对象解决问题(洛谷P1093题题解,Java语言描述)
- Python 列表 list 数组 array
- 大数据面试-01-大数据工程师面试题
- S01E05-专访琚[jū]致远:聊聊兴趣与成就感如何驱动他参与开源社区
- 基于JAVA的KTV交易_Java写的KTV管理系统(Swing界面,含源码)
- 临时邮件、临时接收手机验证码等好用工具
- 以内部管理员批准模式_UAC 在管理员批准模式下运行所有管理员(Windows 10) - Windows security | Microsoft Docs...
- 职称计算机初级考试题,初级职称计算机考试题库
- 新手学编程?选python吧!
- javascript实现图片轮播_Node.js实现将文字与图片合成技巧
- BIOS和EFI启动过程
- 腾讯云国际版cvm云服务器如何重装系统-UNIRECH
- python爬虫获取携程旅游景点评分和评论
- 第三代CAN技术即将到来
热门文章
- python入门指南txt-十分钟搞定 C/C++ 项目自动化构建 —— Xmake 入门指南
- 1000行代码入门python-Python基础知识和工作环境
- 零基础学python-零基础适合学习python吗?
- p语言是python吗-Python 这语言真是混乱和原始
- python练习题及答案-python装饰器练习题及答案
- runtimeerror怎么解决python_如何解决这个python错误? RuntimeError:字典在迭代期间改变了大小...
- woocommerce产品选项描述修改_简历修改服务:中文修改、英文修改、中英互译、简历定制,名师一对一指导修改!...
- 【王道计组笔记】总线(1):总线的概念和分类
- LeetCode 392 判断子序列
- 3d怎么把两个面拼接在一起_视频拼接怎么做?如何将多段视频拼接在一起?