传送门
思路:dfs探路即可,注意判断邻界条件,记得多考虑几种情况。
同时不能忽视题目条件。(空白处用’ '补齐)。

#include<algorithm>
#include<map>
#include<cstring>
#include<iostream>
using namespace std;
char a[500][500];
int n, flag = 0;
void dfs(int x, int y, char fx)
{if(flag){return ;}//cout << x << " " << y << " " << a[x][y] << endl;if(fx == 'r'){//cout << 1 << endl;///当前方向和下一个方向if(a[x][y + 2] == '#' && a[x + 2][y] == '#'){flag = 1;return ;}if(y + 1 >= n || a[x][y + 2] == '#'){a[x + 1][y] = '#';dfs(x + 1, y, 'd');}else{a[x][y + 1] = '#';dfs(x, y + 1, fx);}}else if(fx == 'd'){//cout << 2 << endl;if((a[x][y - 2] == '#' || a[x - 1][y - 1] == '#' ) && a[x + 2][y] == '#'){flag = 1;return ;}if(x + 1 >= n || a[x + 2][y] == '#'){a[x][y - 1] = '#';dfs(x, y - 1, 'l');}else{a[x + 1][y] = '#';//cout << 1111 << endl;dfs(x + 1, y, fx);}}else if(fx == 'l'){//cout << 3 << endl;//a[x][y] = '#';if(a[x][y - 2] == '#' && a[x - 2][y] == '#'){flag = 1;return ;}if(y - 1 < 0 || a[x][y - 2] == '#'){a[x - 1][y] = '#';dfs(x - 1, y, 'u');}else{a[x][y - 1] = '#';dfs(x, y - 1, fx);}}else if(fx == 'u'){//cout << 4 << endl;//a[x][y] = '#';if((a[x][y + 2] == '#' || a[x + 1][y + 1] == '#' ) && a[x - 2][y] == '#'){flag = 1;return ;}//if(a[x][y - 2] == '#' && )if(x - 1 < 0 || a[x - 2][y] == '#'){a[x][y + 1] = '#';dfs(x, y + 1, 'r');}else{a[x - 1][y] = '#';dfs(x - 1, y, fx);}}
}
int main()
{int T;cin >> T;while(T--){flag = 0;memset(a,' ',sizeof a);cin >> n;a[0][0] = '#';if(n == 1)cout << "#" << endl;else if(n == 2){cout << "##" << endl;cout << " #" << endl;}else if(n == 3){cout << "###" << endl;cout << "  #" << endl;cout << "###" << endl;}else{dfs(0, 0, 'r');for(int i = 0; i < n; i++){for(int  j = 0; j < n; j++)cout << a[i][j];cout << endl;}}}return 0;
}

The Squared Mosquito Coil dfs相关推荐

  1. 计蒜客The Squared Mosquito Coil

    模拟 注意数组是 r  c 的结构,不是 x y 的结构. #include <bits/stdc++.h> using namespace std; const int maxn = 5 ...

  2. P1016 旅行家的预算

    题面:https://www.luogu.org/problem/P1016 本题直接贪心之后dfs即可,注意dfs要讨论两种情况. Code: #include<iostream> #i ...

  3. 近期题目整理2.0(递归和简单dfs)

    1.HDU-1207 题目描述: 经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往 ...

  4. NOIP模拟赛 蚊子 mosquito

    蚊子 描述 作为一只明媚的兔子,要会叠被子,又得会打蚊子-- 兔子住在兔子洞里.兔子洞可以看成是一棵无根树,有 nnn 个洞穴,有 n−1n-1n−1 条通道连接着 nnn 个洞穴.每天晚上,兔子会在 ...

  5. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  6. [C] [编程题]连通块(DFS解决)

    时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 256M,其他语言512M 来源:牛客网 金山办公2020校招服务端开发工程师笔试题(一) 题目描述 给一个01矩阵,1代表是陆地,0代表 ...

  7. 【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组

    [BZOJ2434][NOI2011]阿狸的打字机 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P ...

  8. usaco snail trails(dfs)

    dfs啊,我还写了好长时间,一天不如一天. /* ID:jinbo wu TASK: snail LANG:C++ */ #include<bits/stdc++.h> using nam ...

  9. usaco shuttle puzzle(dfs剪枝)

    这题一看我也以为找规律,然后无法下手之后又想到bfs最后看题解是用dfs大神dfs用的出神入化. 不过这题好像可以找规律. /* ID:jinbo wu TASK: shuttle LANG:C++ ...

最新文章

  1. mysql 源码 库函数_【MySQL】MHA源代码之主库选取(二)
  2. Python - 列表与字符串的互相转换
  3. 封装数据库一系列操作,包括打开/新建数据库,增删改查
  4. 安徽理工大学计算机学院蒋群,计算机学院2001级校友十周年聚会
  5. HTML5 Canvans 常用API整理
  6. SAP 电商云 Spartacus 产品明细页面的 pageContext 如何获取的?
  7. 一个小老板从小公司创业开始做起的过程记录
  8. 设备唯一标志的解决方案
  9. 微信小程序生成海报工具Painter
  10. mysql flush tables_MySQL 清理缓存—flush tablesFlush tables的影响
  11. 国产手机品牌线下渠道将崩溃,难怪618纷纷割肉抛售努力逃生
  12. 使用html框架制作一个网站布局
  13. win11硬盘分区如何合并 windows11硬盘分区合并的解决方法
  14. 串口TXD和RXD的线序导致不能通信的问题
  15. 华为又一黑科技:AR高精地图服务即将上线
  16. 白帽黑客最好用的编程语言
  17. 抢下硅谷自动驾驶出租车运行首秀的,竟是家中国公司?
  18. matlab梁结点,用matlab编程对无限梁设计
  19. 1000亩盐碱地试验田 国稻种芯-田国庆:拓荒精神荒滩变良田
  20. Vista系统安全设置

热门文章

  1. 企业管理平台:完整的业务运作流程从6个方面来设置
  2. Java知识点——类、超类和子类
  3. 提高 48V 配电性能?听专家怎么说
  4. 今日金融词汇---品牌溢价
  5. positive-unlabeled (PU) learning
  6. 触景无限“点睛计划”免费帮助传统企业完成智能化升级
  7. 解决EndNotes在word不显示的问题
  8. OJ每日一练——有一门课不及格的学生
  9. 【leetcode-python-22】874. 模拟行走机器人
  10. 局域网及ADSL问题FAQ