当前位置: 首页 > news >正文

蓝桥杯——玩具蛇

题目

小蓝有—条玩具蛇,一共有16节,上面标着数字1至16。每—节都是一个正方形的形状。相邻的两节可以成直线或者成90度角。
小蓝还有一个4×4的方格盒子,用于存放玩具蛇,盒子的方格上依次标着字母A到Р共16个字母。
小蓝可以折叠自己的玩具蛇放到盒子里面。他发现,有很多种方案可以将玩具蛇放进去。
下图给出了两种方案:

请帮小蓝计算一下,总共有多少种不同的方案。如果两个方案中,存在玩具蛇的某一节放在了盒子的不同格子里,则认为是不同的方案。

分析

很明显的DFS,只需要定义方向,然后注意不要越界,每次放置好一段之后需要标记,标记完之后再接着搜索,搜完之后要删除标记。

代码

num = [[0] * 4 for i in range(4)]
direction = [[1, 0], [-1, 0], [0, 1], [0, -1]]
ans = 0
def dfs(x, y, count):global ansif count == 16:ans += 1returnfor i in range(4):dx = x + direction[i][0]dy = y + direction[i][-1]if 0 <= dx < 4 and 0 <= dy < 4 and num[dx][dy] == 0:num[dx][dy] = 1dfs(dx, dy, count+1)num[dx][dy] = 0
for i in range(4):for j in range(4):num[i][j] = 1dfs(i, j, 1)num[i][j] = 0
print(ans)

http://www.lryc.cn/news/336861.html

相关文章:

  • 百度SSL证书免费申请
  • SpringBoot Assert断言
  • test4121
  • UI自动化测试重点思考(下)--装饰器/生成器/夹具的使用/描述符的作用/ddt驱动/多线程
  • C# 字段和属性的区别
  • 备考ICA----Istio实验17---TCP流量授权
  • [C++][算法基础]树的重心(树图DFS)
  • 探秘ChatGPT:如何利用AI提升论文写作效率
  • 多无人机集群协同避障
  • 基于velero和minio实现k8s数据的备份
  • 【Java核心技术】第4章 对象与类
  • 【LeetCode】回溯算法类题目详解
  • java实现请求缓冲合并
  • 分布式锁的原子性问题
  • 从零自制docker-8-【构建实现run命令的容器】
  • 2024.03.31 校招 实习 内推 面经
  • 邦芒职场:塑造职场人气王的秘诀
  • 滤波器网络变压器的作用
  • Python —— 简述
  • 使用Rust加速Python程序,让代码飞起来
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(八)- 向量整数算术指令
  • Qt Designer在布局中调整控件垂直伸展或者水平伸展之后控件没有变化
  • 微信公众号粉丝迁移费用是多少?
  • 基于Vue3 中后台管理系统框架
  • Agent调研--19类Agent框架对比
  • 蓝桥杯-求阶乘
  • 计算两个日期之间相差的天数的四种方法
  • 【leetcode面试经典150题】42. 有效的字母异位词(C++)
  • Windows 2003 R2与Windows 2022建立域信任报错:本地安全机构无法跟域控制器获得RPC连接。请检查名称是否可以解析,服务器是否可用。
  • UE5、CesiumForUnreal实现加载建筑轮廓GeoJson数据生成白模功能