蓝桥杯 方格问题 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同
题目:
6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。
如下就是三种可行的分割法。
核心思想:
画分割线的思想,从方格中心点开始(因为分割线要中心对称,才能使沿分割线剪出来的格子也是中心对称的),向四个方向延伸分割线,延伸到达下一个点后,继续向四个方向延伸分割线线,以此类推,其中向一个方向延伸时,中心对称的另一条线也要延伸,才能达到分割线剪出来的格子中心对称的效果
代码:
package lanqiaobei;public class fanggefenge {static int ans=0;public static void dfs(int x,int y,int[][] visit,int[][] direction) {//深度优先遍历if(x==0||y==0||x==6||y==6) {//走到头了说明分割线画完了,一种情况完成ans+1ans++;return;//到头了,回头,走下一个遍历}visit[x][y]=1;//这个坐标走过了visit[6-x][6-y]=1;//使对称for(int i=0;i<4;i++) {//调整坐标int mx=x+direction[i][0];int my=y+direction[i][1];if(mx<0||mx>6||my<0||my>6) continue;//不符合的情况除掉,不对它进行递归if(visit[mx][my]==0)//这个坐标没走过,则进行深度遍历dfs(mx, my, visit, direction);}//回溯,本次的各个方向的遍历完成后,不能对其他遍历产生影响visit[x][y]=0;visit[6-x][6-y]=0;}public static void main(String[] args) {int[][] direction = {{1,0},{-1,0},{0,1},{0,-1}};//用于依次为向右向左向上向下int[][] visit = new int[7][7];//标志数组,标志这个坐标是否走过for(int i=0;i<7;i++)for(int j=0;j<7;j++)visit[i][j]=0;//一开始都没走过,赋值0dfs(3, 3, visit, direction);//从中心点开始走System.out.println("可能的分割法有:"+ans/4+"种");//别忘了除四,中心对称是不算的}}
蓝桥杯 方格问题 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同相关推荐
- 洛谷P8707 [蓝桥杯 2020 省 AB1] 走方格 C语言/C++
[蓝桥杯 2020 省 AB1] 走方格 题目描述 在平面上有一些二维的点阵. 这些点的编号就像二维数组的编号一样,从上到下依次为第 1 1 1 至第 n n n 行,从左到右依次为第 1 1 1 至 ...
- 2020蓝桥杯省赛---java---B---8(走方格)
题目描述 [问题描述]在平面上有一些二维的点阵. 这些点的编号就像二维数组的编号一样,从上到下依次为第 1 至第 n 行,从左到右依次为第 1 至第 m 列,每一个点可以用行号和列号来表示.现在有个人 ...
- 蓝桥杯java第五届决赛第三题--格子放鸡蛋
标题:格子放鸡蛋X星球的母鸡很聪明.它们把蛋直接下在一个 N * N 的格子中,每个格子只能容纳一枚鸡蛋.它们有个习惯,要求:每行,每列,以及每个斜线上都不能有超过2个鸡蛋.如果要满足这些要求,母鸡最 ...
- [蓝桥杯][2013年第四届真题]剪格子(dfs)
题目描述 历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. ±-–±-+ |10 1|52| ±-***–+ |20|30 1 ...
- [蓝桥杯][2013年第四届真题]剪格子-dfs
题目描述 历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数. 我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60. ...
- 【蓝桥杯官网试题 - 历届试题】格子刷油漆(dp)
题干: 问题描述 X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆. 你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但 ...
- 蓝桥杯精选算法赛题——剪枝——剪格子
这一节我们回顾一下我们之前学的DFS.BFS. 它们是暴力法的直接实现,能把所有可能的状态都搜出来,然后从中找到解. 不过,暴力法往往比较低效,把时间浪费在很多不必要的计算上.比如BFS 中的&quo ...
- 第八届蓝桥杯-第四题方格分割
标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分. 要求这两部分的形状完全相同. 如图:p1.png, p2.png, p3.png 就是可行的分割法. 试计算: 包括这3种分法在内,一共 ...
- 方格分割 蓝桥杯心得
标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分. 要求这两部分的形状完全相同. 如图:p1.png, p2.png, p3.png 就是可行的分割法. 试计算: 包括这3种分法在内,一共有多 ...
- 蓝桥杯第八届省赛JAVA真题----方格分割
标题:方格分割 6x6的方格,沿着格子的边线剪开成两部分. 要求这两部分的形状完全相同. 如图:p1.png, p2.png, p3.png 就是可行的分割法. 试计算: 包括这3种分法在内,一共有多 ...
最新文章
- DL之LeNet-5:LeNet-5算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
- mysql读写分离_Mysql数据库09MySQL读写分离
- 数据库开发——MySQL——函数与流程控制
- 适合做手机铃声的81首歌_“想下载这首歌作为你的手机铃声吗?”
- linux x64系统android开发环境搭建
- html如何隐藏二进制字符串,如何用二进制代码隐藏字符串?
- 部分网站为什么上不去_天机SEO:分析网站收录与排名的重要因素
- Linux SWAP 深度解读
- EMC标准与测试方法
- 盘点 常见MQ : 消息队列总览
- 医疗人工智能与未来医院信息化建设
- 吴伯凡-认知方法论-如何消除认知阑尾
- 华为/荣耀 Magicbook/Matebook 开机经常弹出华为智能还原
- 湖南软件计算机单招较好学校,长沙岳麓区计算机IT单招学校排行榜
- 教你怎么快速读出python numpy中给定的array的shape
- 计算机辅助项目管理课程方案,计算机辅助项目管理课程设计-20210310112313.pdf--原创力文档...
- ROM修改---修改本机的mac地址
- Python飞机大战(究极迫害版)
- 【数学建模】多元线性回归(PythonMatlab代码实现)
- 成功解决:XXX不在 sudoers 文件中,此事将被报告