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

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

解题思路:
枚举每个点,然后求路径方案。

代码如下:

#include <iostream>
using namespace std;const int N = 5;
bool vis[N][N] = {false};
int dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};
long long ans;
void dfs(int x, int y, int u) {if (u == 16) {ans++;return ;}for (int i = 0; i < 4; i++) {int xx = x + dx[i], yy = y + dy[i];if (xx >= 1 && xx <= 4 && yy >= 1 && yy <= 4 && !vis[xx][yy]) {vis[xx][yy] = true;dfs(xx, yy, u + 1);vis[xx][yy] = false;}}
}int main() {for (int i = 1; i <= 4; i++)for (int j = 1; j <= 4; j++) {vis[i][j] = true;dfs(i, j, 1);vis[i][j] = false;}cout << ans << endl;return 0;
}

十一届蓝桥杯国赛 玩具蛇-dfs相关推荐

  1. 2020/第十一届蓝桥杯国赛/Java-A

    试题A:和数个数 boolean isPrime(int n) {for (int i = 2; i <= Math.sqrt(n); i++) {if (n % i == 0) {return ...

  2. 2020十一届蓝桥杯国赛二等奖Java B组

    大家觉得写还可以,可以点赞.收藏.关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录 参考博客https://blo ...

  3. 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑

    题目链接 Ideas 2020年第十一届蓝桥杯 - 国赛 - Python大学组 - H.答疑 Code Python if __name__ == '__main__':n = int(input( ...

  4. 2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数

    2020年第十一届蓝桥杯 - 国赛 - Java研究生组 - F.循环小数 在线评测 Ideas 对于一个纯循环小数,假设循环节为l,则小数为0.llll-,转换为分数就是 l / (10 ** n ...

  5. 第十一届蓝桥杯国赛题目

    以下是第十一届蓝桥杯国赛题目,供大家学习参考(提取码失效可以评论我) 百度云: 链接: https://pan.baidu.com/s/1g1o-px-RUVoXLLhRDS8cXQ 提取码: fgf ...

  6. 第十一届蓝桥杯国赛H题答疑

    第十一届蓝桥杯国赛H题答疑 题目 [题目描述] [输入格式] [输出格式] [样例输入] [样例输出] [样例说明] [评测用例规模与约定] 分析(这篇水文的精髓) 代码 题目 万一图片加载不出来的话 ...

  7. 临时抱佛脚之第十一届蓝桥杯国赛B组部分题解(Part 1)

    前言 酒可真是好东西啊,能让人一时间忘记不快的事. 但是一到明天就算不喜欢也还是会想起,而且比昨天更让人痛苦,想逃也逃不掉. --坂田银时 题目来源 蓝桥杯官网→学习资料→历届真题→竞赛→蓝桥杯真题 ...

  8. 2020第十一届蓝桥杯国赛JAVA B组真题解析(带源码及解析)

    蓝桥杯历年真题及解析. 目录 蓝桥杯历年真题及解析. A: 美丽的 2 题目: 分析: AC代码: B: 扩散 题目: 分析: AC代码: C: 阶乘约数 题目: 分析: AC代码: D: 本质上升序 ...

  9. 2020第十一届蓝桥杯国赛Python组

    A美丽的2 答案:563 res = 0 for i in range(1, 2021):if '2' in str(i):res += 1 print(res) # 563 B合数个数 模拟即可 答 ...

最新文章

  1. R语言可视化韦恩图实战:VENN DIAGRAM
  2. CISCO交换机如何删除 Vlan
  3. Guassdb T 在EulerOS系统安装说明
  4. oracle定时关闭job,Oracle 定时JOB
  5. StarGAN v2: Diverse Image Synthesis for Multiple Domains (多域多样性图像合成)
  6. java invocationtarget,Java异常处理之java.lang.reflect.InvocationTargetException
  7. M面试题-HTTPS和HTTP的区别
  8. python怎么画简单图-python中简单易学的绘图:用turtle画太极图
  9. java w3c解析xml乱码_下载xml 中文乱码
  10. 数组和集合的互相转换
  11. matlab TVdenoise,TV_Denoise TV全变分模型图像去噪 以及高斯模糊处理 2D Graphic 2D图形编程 272万源代码下载- www.pudn.com...
  12. sm3 算法java_“国密加密算法”SM系列的C#实现方法
  13. VOIP流中使用CNN-LSTM下对QIM的隐写分析方法
  14. CSDN学霸课表——把Word的默认背景颜色由白色改为绿色
  15. Mac 此账户尚未用于app store_iOS、Android 本周不能错过的 14 款新 App
  16. revit图纸导出dxf文件批量修改
  17. 【工大SCIR笔记】自然语言处理领域的数据增广方法
  18. ICC小Tips集锦
  19. vue+cesium汉化包
  20. 云游戏,玩什么比怎么玩更重要

热门文章

  1. 【错误异常大全】:ArcGIS version not specified. You must call RuntimeManager.Bind before creating any ArcGIS
  2. 从C#开始的面向对象编程经典自学教程
  3. C语言试题七十二之请编写函数判断三角形的类型,并输出其面积和类型。
  4. 剑指offer之用链表实现栈(带头节点)
  5. Android studio之编译出现 Error:null value in entry: outputDirectory=null
  6. C和指针之Eratosthenes-埃拉托斯特尼筛方法找质数
  7. Android之6.0 权限申请封装
  8. 查询工资最低的3名员工的职工工号、姓名和收入_普法课堂|你有多久没有收到工资条了?...
  9. tomcat出现5个using_当猫咪出现这5个迹象,主人就要给猫咪换猫粮了
  10. linux 编译指cpu内核,linux内核编译与配置