蓝桥杯第八届_方格分割

2024-06-16 19:32
文章标签 分割 蓝桥 第八届 方格

本文主要是介绍蓝桥杯第八届_方格分割,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

方格分割

6x6的方格,沿着格子的边线剪开成两部分。
要求这两部分的形状完全相同。

如图:p1.png, p2.png, p3.png 就是可行的分割法。
这里写图片描述
这里写图片描述
这里写图片描述

试计算:
包括这3种分法在内,一共有多少种不同的分割方法。
注意:旋转对称的属于同一种分割法。

请提交该整数,不要填写任何多余的内容或说明文字。
这里写图片描述 这里写图片描述这里写图片描述

观察可得他是一个中心对称图形,我们只需要搜索它的对称线即可。我们可以把对称线抽象为从(4,4)出发到达(1,y),或(7,y),或(x,1),或(x,7)的路径。易知这条路径只是对称线的一半,因为另一半与这条路径关于(4,4)对称。所以我们只需要注意这条路径不能和它的关于(4,4)对称的另一半路径相交就行了。

例如
这里写图片描述

该条路线从 (4,4)->(4,3)->(5,3)->(5,2)->(4,2)->(3,2)->(3,3)->(2,3)->(2,2)->(1,2)。

在搜索的过程,我们不仅要标记它走过的点,而且还要标记该点关于中心点(4,4)对称的点。

因为我们不仅要满足该条路径的每个点只走一次,而且还要满足该条路径不能和它的关于(4,4)对称的另一半路径相交。

代码如下

#include<stdio.h>
const int INF = 8;     //地图范围为1~7; int mark [INF][INF] = {0}, dir[4][2] = {1,0,0,1,-1,0,0,-1};int CenterPointX = INF/2, CenterPointY = INF/2, result = 0;void dfs(int x,int y);int main()
{mark[CenterPointX][CenterPointY] = 1;dfs(CenterPointX,CenterPointY);printf("%d\n",result/4);        //旋转对称属于同一种。所以要除以4 return 0;
}void dfs(int x,int y)
{if(x == 1 || x == INF-1 || y == 1 || y == INF-1){result++;return ;}else{for(int i=0; i < 4; i++){int nx = x + dir[i][0];int ny = y + dir[i][1];if(nx >= 1 && ny <= INF-1 && ny >= 1 && ny <= INF-1 && mark[nx][ny] == 0){/*点(x,y)关于(m,n)的对称点为(2*m-x,2*n-y) ;*/mark[nx][ny] = 1;   //标记已走过的点 mark[2 * CenterPointX - nx][2 * CenterPointY - ny] = 1;     //标记该点关于中心点对称的点dfs(nx,ny) ;mark[nx][ny] = 0;mark[2 * CenterPointX - nx][2 * CenterPointY - ny] = 0;}}}}

这篇关于蓝桥杯第八届_方格分割的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067341

相关文章

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

基于YOLO8的图片实例分割系统

文章目录 在线体验快速开始一、项目介绍篇1.1 YOLO81.2 ultralytics1.3 模块介绍1.3.1 scan_task1.3.2 scan_taskflow.py1.3.3 segment_app.py 二、核心代码介绍篇2.1 segment_app.py2.2 scan_taskflow.py 三、结语 代码资源:计算机视觉领域YOLO8技术的图片实例分割实

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构

图像分割分析效果2

这次加了结构化损失 # 训练集dice: 0.9219 - iou: 0.8611 - loss: 0.0318 - mae: 0.0220 - total: 0.8915  # dropout后:dice: 0.9143 - iou: 0.8488 - loss: 0.0335 - mae: 0.0236 - total: 0.8816 # 加了结构化损失后:avg_score: 0.89

找不同-第15届蓝桥省赛Scratch初级组真题第4题

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第183讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,查阅教程更方便。 第15届蓝桥杯省赛已于2024年8月24日落下帷幕,编程题一共有5题,分别如下: 猪八戒落地 游乐场 画西瓜 找不同 消

【蓝桥杯嵌入式(一)程序框架和调度器】

蓝桥杯嵌入式(一)程序框架和调度器 序、代码命名规则零、STM32和8051⼀、软件及环境安装⼆、⼯程框架搭建1.时钟配置2、SYS配置3、⼯程配置4、NVIC配置5.、Keil配置 三、系统初始化四、任务调度器 链接: 视频出处 序、代码命名规则 以下是一些常见的举例 零、STM32和8051 链接: 8位和32位单片机最本质区别 ⼀、软件及环境安装

linux分割和合并文件命令

split命令: for i in {1..30}; do num=$(printf "%05d\n" "$i");name="model-$num-of-00030.safetensors";split -b 3G $name tmp/$name-;echo $name;done 合并命令: for i in {1..30}; do num=$(printf "%05d\n" "$i")

【蓝桥杯嵌入式(二)Led、Key、Lcd】

蓝桥杯嵌入式(二)Led、Key、Lcd 五、Led模块1.原理图配置2. 知识点3.底层代码 六、Key模块1.原理图配置2.知识点3.底层代码底层代码(四⾏代码版本)底层代码(状态机版本) 七、LCD模块1.原理图配置2.知识点底层代码 五、Led模块 1.原理图配置 2. 知识点 链接: 上拉电阻的通俗解释 链接: 单⽚机怎么输出⾼电平!推挽输出和开