The Squared Mosquito Coil dfs
传送门
思路: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相关推荐
- 计蒜客The Squared Mosquito Coil
模拟 注意数组是 r c 的结构,不是 x y 的结构. #include <bits/stdc++.h> using namespace std; const int maxn = 5 ...
- P1016 旅行家的预算
题面:https://www.luogu.org/problem/P1016 本题直接贪心之后dfs即可,注意dfs要讨论两种情况. Code: #include<iostream> #i ...
- 近期题目整理2.0(递归和简单dfs)
1.HDU-1207 题目描述: 经典的汉诺塔问题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往 ...
- NOIP模拟赛 蚊子 mosquito
蚊子 描述 作为一只明媚的兔子,要会叠被子,又得会打蚊子-- 兔子住在兔子洞里.兔子洞可以看成是一棵无根树,有 nnn 个洞穴,有 n−1n-1n−1 条通道连接着 nnn 个洞穴.每天晚上,兔子会在 ...
- [JS][dfs]题解 | #迷宫问题#
题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...
- [C] [编程题]连通块(DFS解决)
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 256M,其他语言512M 来源:牛客网 金山办公2020校招服务端开发工程师笔试题(一) 题目描述 给一个01矩阵,1代表是陆地,0代表 ...
- 【BZOJ2434】[NOI2011]阿狸的打字机 AC自动机+DFS序+树状数组
[BZOJ2434][NOI2011]阿狸的打字机 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P ...
- usaco snail trails(dfs)
dfs啊,我还写了好长时间,一天不如一天. /* ID:jinbo wu TASK: snail LANG:C++ */ #include<bits/stdc++.h> using nam ...
- usaco shuttle puzzle(dfs剪枝)
这题一看我也以为找规律,然后无法下手之后又想到bfs最后看题解是用dfs大神dfs用的出神入化. 不过这题好像可以找规律. /* ID:jinbo wu TASK: shuttle LANG:C++ ...
最新文章
- mysql 源码 库函数_【MySQL】MHA源代码之主库选取(二)
- Python - 列表与字符串的互相转换
- 封装数据库一系列操作,包括打开/新建数据库,增删改查
- 安徽理工大学计算机学院蒋群,计算机学院2001级校友十周年聚会
- HTML5 Canvans 常用API整理
- SAP 电商云 Spartacus 产品明细页面的 pageContext 如何获取的?
- 一个小老板从小公司创业开始做起的过程记录
- 设备唯一标志的解决方案
- 微信小程序生成海报工具Painter
- mysql flush tables_MySQL 清理缓存—flush tablesFlush tables的影响
- 国产手机品牌线下渠道将崩溃,难怪618纷纷割肉抛售努力逃生
- 使用html框架制作一个网站布局
- win11硬盘分区如何合并 windows11硬盘分区合并的解决方法
- 串口TXD和RXD的线序导致不能通信的问题
- 华为又一黑科技:AR高精地图服务即将上线
- 白帽黑客最好用的编程语言
- 抢下硅谷自动驾驶出租车运行首秀的,竟是家中国公司?
- matlab梁结点,用matlab编程对无限梁设计
- 1000亩盐碱地试验田 国稻种芯-田国庆:拓荒精神荒滩变良田
- Vista系统安全设置